C语言:若有定义 int *p,则表达式 p++ 的值就是 p 所指向的变量的地址值加1?

问题描述:

C语言:若有定义 int *p,则表达式 p++ 的值就是 p 所指向的变量的地址值加1?
请判断正误并说明理由
int a[]={1,2,3}

int *p=&a[1]

printf("%d",*(p++))

printf("%d",*(p--))

//为什么两次输出结果一样
1个回答 分类:综合 2014-11-17

问题解答:

我来补答
这是错的,p没有进行初始化
再问: int a[]={1,2,3}

int *p=&a[1]

printf("%d",*(p++))

printf("%d",*(p--))

//为什么两次输出结果一样
再答: 自增和自减运算符可以有前缀或后缀。
拿自增来说,++p : p的地址自增1,表达式为p加1后的地址
p++ : p的地址自增1,表达式为p原来的地址
自减的原理同上~望采纳
 
 
展开全文阅读
剩余:2000
下一页:先解十一题
也许感兴趣的知识