C语言中,*p=&n1这样对吗?不应该是p=&n1,*p=n1吗?谢谢
发布网友
发布时间:2024-09-06 15:38
我来回答
共5个回答
热心网友
时间:2024-11-24 16:37
没错的 这样写
int n2, *p;
p = &n2;
是对的
也可以简化
int n2, *p = &n2;
意思是 整形 变量n2, 指针p的地址是n2整形的地址;
如果是 int n2, p = &n2;
那意思就是 整形 变量n2, 变量p的值是n2的地址 ;
这样的话 p存的是地址, 而不是地址的值;
热心网友
时间:2024-11-24 16:38
n2=n1 的操作是把n1的值赋值给n2
题中p=&n2 并非&n1 q=&n1 不要看错了
不讨论语法
B是指针的赋值
C是把n1的地址赋值给n2
D是把n1赋值给指针p
题中只是一次定义多个变量
分开的话 等同
int n1 = 0;
int n2 ;
int *p=&n2;
int *q = &n1;
热心网友
时间:2024-11-24 16:38
答案是A,你可以这样理解:
int n1=0;
int n2;
int *p=&n2;//p是指向n2的指针,*p=n2
int *q=&n1;//q是指向n1的指针,*q=n1
现在若n1=n2;
则*p=*q;
中国物联网校企联盟技术部追问为什么*p=&n1和*p=n1是一样的?
热心网友
时间:2024-11-24 16:39
*p是定义一个指针,该指针指向一个地址,&是取地址符
热心网友
时间:2024-11-24 16:39
*p=&n1可能出现的情况是p是二级指针追问那补充问题的那道题,为什么选A?不应该是**p=**q吗?谢谢!
追答我刚才没有看到你补充的题目
int *p = &n2;与 *p = &n2;这两个语句的意思是完全不同的,前者含有定义一个变量的意思,而后者是解引用的意思,在这两句话中,*号不是一个东西。
就像1+2和+2中的+号意思不同一样