int x[2][3]={0},*P=X[0];则有语法错误的是

A x[0]=1 B p[0]=1 c *p =1 D x[0][0]=1

球球各位大侠 详细解释下ABCD 我怎么觉得都有问题啊 答案是A
讲的好的加分

通过“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]为一个地址指针,非变量也~!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-03
同楼上,是每个都有错误,但只有第一个是语法错误。
x[0]==*(x+0); 是定值,值=&x[0][0]
而x[0][0]==*(*(x+0)+0); 是变量
要是还不懂,就自己好好看一下指针那章。
第2个回答  2012-03-03
他说的是有语法错误的,当然是A有错,这是一个二维数组,给指针P,数组X的初始地址,BCD三个选项都可以看做是给变量赋值,没有语法错误。追问

那x[0]呢不是变量吗?

第3个回答  2020-11-12
y++是一定没有问题的
p++是有问题的,他表示的实际问题就是p的下一个地址,他的内容是不知道的。
(*p[0])++也是没有问题的
他表示的是y++
*++p[0]意义,p[0]之后的下一个指针是p[1],取对象就是y

int x[2][3]={0},*P=X[0];则有语法错误的是
通过“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]所代表的仅为一个地...

c++中,有定义 int x=1234,*p=x; 为什么*x的值为内存单元1234
int x=1234,*p=x;有错误的,不能把内容转换为指针。可以:int x=1234,*p=(int *)x;即使采用这种方法,p指向的是内存地址为1234的内存区域,使用时候会报错。补充:x是int型变量不能使用*x。

int x, *p; 为什么*p=x这么赋值是错的,将x赋值给p指针指向的内存,不...
p是指向int的指针,给指针赋值只能赋地址,所以只有p=&x;只有在指针有值,也就是有指向的地址后,才能用*p来调用该地址所指向位置的数据。

全国计算机等级考试二级C语言历年试题及答案
int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 (24)有以下程序 fun(int x,int y){return(x+y);} main() {int a=1,b=2,c=3,sum; sum=fun((a++,b++b,a+b),c++); prin...

若有定义:int x[5],*p=x;则不能代表数组首地址的是?我知道这个&x是错 ...
首地址那必须就是*p=x[0],或&x[0].您所问到的&x其实表示的是x数组存放在内存中的地址。而不能表示数组中的某一个地址(包括首地址在内)。这样解释您能挺懂吗?另外:&x 系统是可以识别的,你可以让其输出看看结果,应该是一个8位数的存储单元的首地址。

13. 若有定义:int x[10], *p=x;,则*(p+5)表示( )。 A. 数组元素x[5...
\/\/int x[10], *p=x;,则*(p+5)表示( )。int x[10],*p=x:表示定义了一个数组,让p 指向了x 这个数组,数组名是地址常量,把地址常量保存在指针变量里边了.而这时候指针可以写成数组,数组也可以写成指针:x[i]=p[i]=*(x+i)=*(p+i);因此*(p+5)=x[5]...

...{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
x[2][0] 3 2 1 其实也可以看做一维数组的存储 x[0]---x[8] x[0]=9 x[1]=8 x[8]=1 因为存储的时候都是一样的 p指向的是 x[1][1] 也就是说 p[0] = x[1][1]p[1] = x[1][2] p[2] = x[2][0] 所以结果就是那样了。这里并不是拆分,而是...

为什么我的电脑会突然之间变成蓝屏,上面会有一串英文和数字,要重起电脑...
1065 0x0429 指定的资料库不存在。 AYbO1066 0x042A 服务传回专属於服务的错误码。 !+Bp1067 0x042B The process terminated unexpectedly. 2d;1068 0x042C 从属服务或群组无法启动。 g*nN}1069 0x042D 因为登入失败,所以没有启动服务。 VcC-1070 0x042E 在启动之后,服务在启动状态时当机。 q?1071 0x...

...int x[10],*p;*p =x;在程序中引用数组元素 x[i]的四种形式是_百度知 ...
其实x[10]中的x就是一个指针,指向的地址是数组的第一个元素的地址,而int *p=x则是将x复制给指针p,因此p和x指向同一个位置,引用第一i个元素的方法有下面四种:x[i]p[i](p+i)(x+i)参考资料:http:\/\/zhangliancheng.com

急求计算机二级考试的试题(C语言)
A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5}; C)char a={’A’,’B’,’C’}; D)int a[5]="0123"; (26)有以下程序 A int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,...

相似回答