C语言 int p=5 q=(++p)+(++p)+(++p) q=?
来源:百度知道 编辑:UC知道 时间:2024/06/09 11:38:57
为什么答案是22?
请详细说明,谢谢
请详细说明,谢谢
.. 不同的编译器可能会有不同的答案.. C语言规则里没有规定这种情况下答案一定是22.
所以没有原因. 这是编译器决定的.
这个和cout<<m++<<m++<<m++<<endl;
一样,对于编译器是未定义行为. 不同编译器有不同结果. 测试你会发现,
q=++p 答案是6. q=++p + (++p) 答案会是14,也就是7+7,之后再加下去,,比如q=++p+(++p)+(++p)+(++p)+(++p),就是对了,就是7+7+8+9+10. 也就是问题出在前一个加号上.
如果有人知道机制,请告之
不同的编译器会得出不同的答案,一般用TC2.0得出的答案是18,TC3.0得出的好像是21
c语言int *p=a解释
C语言中定义int c[4][5],(*p)[5];p=c;其中p、p[0]、*p有什么区别?
c++语言中int*p p=s 和*p=s 有什么区别
c语言若有以下定义: tyepdef int *INTEGER; INTEGER p, *q
C语言: ijnt a=1,*p=&a;与int a=1,*p; p=&a; 这两句表达的是一个意思
C语言中 设 int a[]={1,2,3,4,5}, *p=a 则数组元素的正确表示是()
int i,*p=&i;是正确的C说明 ?
C语言中定义int *p;那么*(p++)和*p++有区别吗?
int *p=&a;和 int *p; *p=a;和 int *p; p=&a;有区别么?
C语言中 指针int *a=10;和int *a; *a=10;的区别