您的位置:

c语言指针设计,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;

}