本文目錄一覽:
- 1、C語言程序設計 指針?
- 2、C語言程序設計指針
- 3、C語言中用指針設計,在一個數組中查找一個數,然後輸出這個數在數組中第幾位數?
- 4、c語言指針設計
- 5、C語言程序設計——指針
- 6、設計一個程序(C語言 指針)
C語言程序設計 指針?
變數前面加代表取出這個變數的地址,又叫取址符
指針前面加*代表取出,指針所指向的內存里的數據(值),*又叫取值符
p是指針,n是變數
計算機解析代碼是從右到左,所以
*n = *(n)
n代表取出n在內存中的地址,取址
*n,就是對n在取值
*n和n是等價的
所以下面的都是等價的
*p = *n
*p = n
p = n
就好比小明住在番茄花園
小明家的地址就是番茄花園
番茄花園裡的值就是小明
n代表小明,
n就是小明的家(番茄花園)
*n就好比問小明的家裡住著誰,答案依然是小明
就好比我老婆的老公還是我。
再來理解一下*p
p是一個指針,p就是一個地址
p就是番茄花園
*p就是再問,番茄花園裡住著誰
就好比有一個人叫小壯的,想找小明聚聚,但是不知道小明家的地址,他就找來和小明最要好的朋友小強,通過小強的他給了你一個字條,上面寫著小明的地址,這張字條就是指針,指針就是一個記錄地址東東,如果哪天小明搬家了,這張字條也就作廢了,所以指針指向的是一個內存地址,如果這個地址被釋放了,這個指針也就作廢了,因為指針就是一張帶著地址的紙。
C語言程序設計指針
數組名和指針的功能類似 也是指向那個數組所在的內存。
*p[3] 是一個指針數組,把數組的第一個循環把 ch數組裡的 每一行的地址存到 了P這個指針數組裡,第二個循環列印出來這個地址里的值。
C語言中用指針設計,在一個數組中查找一個數,然後輸出這個數在數組中第幾位數?
#include stdio.h
#includestdlib.h
int searchPos(int arr[], int len, int e) {
for (int i = 0; i len; i++) {
if (arr[i] == e)
return i + 1;
}
return -1;
}
int main() {
int len, e, pos;
printf(“請輸入數組長度:\n”);
scanf(“%d”, len);
int* arr = (int*)malloc(sizeof(int) * len);
printf(“請輸入%d個數組元素:\n”,len);
for (int i = 0; i len; i++) {
scanf(“%d”, arr[i]);
}
printf(“請輸入要查找的數:\n”);
scanf(“%d”, e);
pos = searchPos(arr, len, e);
printf(“要查找的數在第%d位。\n”, pos);
return 0;
}
c語言指針設計
#includestdio.h
int search(int*p,int n,int x)
{
int i;
for(i=0;in;i++)
if(p[i]==x)
break;
if(!(in))
return 11;
else
return i;
}
int main()
{
int a[10],i,n,x;
scanf(“%d”,n);
for(i=0;in;i++)
scanf(“%d”,a[i]);
scanf(“%d”,x);
if(search(a,n,x)==11)
printf(“Not Found\n”);
else
printf(“下標為%d\n”,search(a,n,x));
return 0;
}
C語言程序設計——指針
D
D
D
——錯題,”12345″是常字元串,禁止被更改,會出運行時錯誤
D
B
B
C
D
C
設計一個程序(C語言 指針)
//DEV C
#include stdio.h
#include stdlib.h
#include time.h
#include string.h
#define N 20
typedef struct
{
char name[10];
int age;
int sex;
int grade;
int nclass;
int room;
}INFO;
int main()
{
char* name1[20]={“張”,”王”,”李”,”趙”,”錢”,”孫”,”蔣”,”秦”,”任”,”劉”,”周”,”鄭”,”吳”,”朱”,”許”,”何”,”呂”,”謝”,”方”,”葉”};
char* name2[20]={“子”,”欣”,”晨”,”紫”,”詩”,”夢”,”嘉”,”一”,”思”,”靜”,”可”,”佳”,”心”,”梓”,”俊”,”明”,”浩”,”博”,”文”,”天”};
char* name3[20]={“軒”,”勇”,”濤”,”軍”,”浩”,”豪”,”宇”,”俊”,”鳴”,”熙”,”文”,”國”,”佑”,”澤”,”然”,”傑”,”遠”,”平”,”秋”,”飛”};
srand((unsigned)time(0));
INFO* s;
s=(INFO*)malloc(sizeof(INFO)*N);
int n,i;
for(i=0;iN;i++) //隨機初始N個同學姓名年齡,性別,班級等數據
{
n=rand()%20;
strcpy(s[i].name,name1[n]);
n=rand()%20;
strcat(s[i].name,name2[n]);
n=rand()%20;
strcat(s[i].name,name3[n]);
//以上為隨機生成姓名
s[i].age=rand()%3+16;
s[i].sex=rand()%2;
s[i].grade=rand()%3+1;
s[i].nclass=rand()%6+1;
s[i].room=100*(rand()%5+1)+rand()%20+1;
}
for(i=0;iN;i++)
{
printf(“%s %d歲 “,s[i].name,s[i].age);
if(s[i].sex==1)
{
printf(“男 “);
}
else
{
printf(“女 “);
}
printf(“%d年級%d班 %d室\n”,s[i].grade,s[i].nclass,s[i].room);
}
char ch[50];
int find;
while(1)
{
find=0;
memset(ch,’\0′,50);
printf(“\n請輸入要查詢的姓名: “);
fflush(stdin);
scanf(“%s”,ch);
for(i=0;iN;i++)
{
if(strcmp(s[i].name,ch)==0)
{
find=1;
printf(“%s %d歲 “,s[i].name,s[i].age);
if(s[i].sex==1)
{
printf(“男 “);
}
else
{
printf(“女 “);
}
printf(“%d年級%d班 %d室\n”,s[i].grade,s[i].nclass,s[i].room);
break;
}
}
if(find==0)
{
printf(“\n未找到!”);
}
}
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/296205.html