作业帮 > 综合 > 作业

定义int a=12,*p=&a,p的值为65496,若执行(*p)++,则p=?,a=?,再执行p=p+2,则p=?,

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 03:23:14
定义int a=12,*p=&a,p的值为65496,若执行(*p)++,则p=?,a=?,再执行p=p+2,则p=?,a=?
定义int a=12,*p=&a,p的值为65496,若执行(*p)++,则p=?,a=?,再执行p=p+2,则p=?,
执行(*p)++,是将p指向的值加1,所以p不变,还是65496,而p指向的值,就是a变成13.
执行p=p+2,是将p本身的值加“2”,注意,此时增加的数与p指向的数据类型占据的内存空间大小有关.比如此题中,p指向的是整数,在32位机器中占用4个字节,所以p+1就变为65500,增加了4个字节.那么p+2就是65504.这是对a没有影响,还是12,但是p已经不再指向a.