本文目录一览:
- 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;
}