关于指针..在线..等...
main(){
int a=2,*p=&a,*q=&a;
printf("%d %d ",*p++,*(q++));
p=&a,q=&a;
printf("%d %d",*p,(*q)++);
} 为什么结果是2 2 3 2?
搜索更多相关的解决方案:
在线
----------------解决方案--------------------------------------------------------
汗死..哪位高手..帮忙指点下...不盛感激...
----------------解决方案--------------------------------------------------------
* 和 ++ 的优先级相同,而且都是右结合,所以输出 *p++ 和输出 *(q++) 是一样的(p、q 都指向了a).
至于下面那句,记住,实参传递参数给形参的时候是按从右至左的顺序传递的,这里也是一样
即先执行 (*q)++ 再执行 *p 。而(*q)++ 执行完之后a 的值已经变成3了
----------------解决方案--------------------------------------------------------
应该全是2才对。。
++优先级比 * 高 所以*(q++)与*q++无区别
++在后面 所以 是先输出值2然后地址++了
所以只有你最后一个 (*q)++); 才把值2++变成了3
你在最后再加上一句printf("%d",*p); 这句输出是3了
----------------解决方案--------------------------------------------------------
为什么我编译的结果是2 2 2 2
----------------解决方案--------------------------------------------------------
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━ high
表达式
────────────────────────────
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)
────────────────────────────
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)
────────────────────────────
*(指针所指内容) type(函数说明) sizeof(长度计算)
────────────────────────────
*(乘) /(除) %(取模)
────────────────────────────
+(加) -(减)
────────────────────────────
<<(位左移) >>(位右移)
────────────────────────────
<(小于) <=(小于等于) >(大于) >=(大于等于)
────────────────────────────
==(等于) !=(不等于)
────────────────────────────
&(位与)
────────────────────────────
^(位异或)
────────────────────────────
|(位或)
────────────────────────────
&&(逻辑与)
────────────────────────────
||(逻辑或)
────────────────────────────
?:(?表达式)
────────────────────────────
= += -=(联合操作)
────────────────────────────
,(逗号运算符) low
----------------解决方案--------------------------------------------------------
变量才能++,常量不能++
----------------解决方案--------------------------------------------------------
楼上是对的.
----------------解决方案--------------------------------------------------------
回复:(vbc)为什么我编译的结果是2 2 2 2
你用的不是TC,是VC++吧?编译器不同,没办法 ----------------解决方案--------------------------------------------------------
那为什么*(p++)不会出现内存问题.
----------------解决方案--------------------------------------------------------