int x[2][3]={0},*P=X[0];则有语法错误的是
发布网友
发布时间:2024-08-18 21:51
我来回答
共4个回答
热心网友
时间:2024-08-22 14:45
通过“int x[2][3]={0},*p=x[0];”的定义;
现在p其实已经被赋为一个存储int变量地址(即指针),其所代表的地址就是x[0][0]的地址;
由于p=x[0]=&x[0][0];
所以p[0]=x[0][0]=*&x[0][0]=*x[0]=*p他们均为x[0][0]所代表的存储单元的值;
而x[0]所代表的仅为一个地址,地址怎么能够赋值为1呢?
x[0]为一个地址指针,非变量也~!
热心网友
时间:2024-08-22 14:51
y++是一定没有问题的
p++是有问题的,他表示的实际问题就是p的下一个地址,他的内容是不知道的。
(*p[0])++也是没有问题的
他表示的是y++
*++p[0]意义,p[0]之后的下一个指针是p[1],取对象就是y
热心网友
时间:2024-08-22 14:46
他说的是有语法错误的,当然是A有错,这是一个二维数组,给指针P,数组X的初始地址,BCD三个选项都可以看做是给变量赋值,没有语法错误。
热心网友
时间:2024-08-22 14:45
同楼上,是每个都有错误,但只有第一个是语法错误。
x[0]==*(x+0); 是定值,值=&x[0][0]
而x[0][0]==*(*(x+0)+0); 是变量
要是还不懂,就自己好好看一下指针那章。