第一,指针类型的变量(以下称指针变量)是用来保存地址的,指针变量的类型决定了它可以保存哪种类型的变量的地址。char *s说明s可以用来保存一个char类型的变量的地址(char *是s的类型,说明s可以保存一个char类型的变量的地址)。
第二,s是指向c[0]的,即s保存的是c[0]的地址(s的值是c[0]的地址),对于A. printf("%s\n", s);%s说明是输出一个以'\0'结尾的字符串,字符串的起始地址在s中,而beijing只有7个字符,数组c分配了8个字节的空间,所以有空间容纳自动添加的'\0',所以A正确。
第三,*是用来说明s是指针类型的。
ptr重复申明, 两个类型不一样; 表达式必须有指向对象类型的指针
你是不是疯了乱发问题,你这样会死的小老弟
#include
int sum(int* a, int* b)
{
return *a + *b;
}
int swap(int *a,int *b)
{
int t = *a;
*a = *b;
*b = t;
return 0;
}
int main()
{
int a,b,(*p)(int*, int*);
scanf("%d,%d",&a,&b);
p=sum;
printf("sum=%d\n", p(&a, &b));
p=swap;
p(&a, &b);
printf("a=%d,b=%d\n",a,b);
}
30分钟彻底学会C语言指针