作业帮 > 综合 > 作业

若有以下定义和语句:int a[4]={1,3,5,7},*p; p=&a[2]; 则*--p的值是【 】

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 18:54:20
若有以下定义和语句:int a[4]={1,3,5,7},*p; p=&a[2]; 则*--p的值是【 】
结果是3.原理如下:
--是自减运算符,也就是说--p可以等同于p=p-1;
因为p是地址,所以p的自减运算是相当于往前移一个位置,
原来p是指向a[2],往前移一个位置,p就指向了a[1],所以*--p就等于3.
最后再给初学者一个忠告,C的运算符是比较复杂的,而且不同的编译系统对源程序的解释也不尽相同,所以,建议不要在这种问题上钻牛角尖.对不确定的东西,分多句写,或者加上括号,否则很容易被带沟里去.比如上面的语句,完成可以写在*(--p);或者分两句写成p--;*p这样子.如果有人专门考别人这些东西,纯属是显摆,不用理他.