如下c语言初级入门如何理解

具体讲解下谢谢啦

img

D
p是指针,n是int类型变量,不能这样赋值

选择D

int n = 2,*p = &n,*q = p;
我的选择是B
首选对上面那一句进行拆分解释 将其分为:
int n;
n=2;
以上两句就相当于 int n = 2; 定义了一个变量n,并将变量n赋值为2.
而int *p=&n;
就相当于
int *p;
p=&n;
先定义了个指针变量,再将变量n的地址赋值给p;
最后的int ** *q = p **;
相当于int *q;
q=p;
将p的地址赋值给q。因为指针本身p存的就是一个地址,所以此处直接赋值
整体来说就是 n有了初始值,p指向n,q又指向了p。

再来看D选项 p = n;
n为一个整型变量,存的是整形数值,将其直接赋值给指针是不对的,指针一般来说是存地址的。
可将其改为*p=n;

望采纳!!