作业帮 > 综合 > 作业

c=*pa+++*pb; 与c=(*pa)+++*pb;什么区别.

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/28 19:19:30
c=*pa+++*pb; 与c=(*pa)+++*pb;什么区别.
c=*pa+++*pb; 与c=(*pa)+++*pb;什么区别
c=*pa+++*pb; 与c=(*pa)+++*pb;什么区别.
前者c=*pa+++*pb,由运算符优先级可知,等效于c=*(pa++)+*pb
后者等效于c=((*pa)++)+*pb
显然不同
前者等效于c=*pa+*pb;pa+=1;
后者等效于c=*pa+*pb;*pa+=1;
即自加的对象不同
再问: 奥 *的优先级大于++??
再答: ++(后缀)的优先级高于*
再问: 可是 *与++不是优先级相同吗?
再答: 第一,从C89开始就将++运算符前缀和后缀视作两个不同的运算符,具有不同的优先级,且++(后缀)的优先级高于++(前缀),所以国内那些教材将++前后缀视作一种的做法是极其不妥的 第二,即便两个运算符的优先级相同,也有结合性可以参考