c语言中指针*p++为什么和*(p++)等价

c语言中指针*p++为什么和*(p++)等价,第1张

p++ 是后缀加加,C/C++规定,后缀加加,在当前表达式中 不自增1,而用原来的值,出了表达式后再自增 1

不同于前缀加加。前缀加加 ++p 的话,先增1,然后用于表达式,出了表达式就不再自增。

所以,x= (p++) 就等于 x=(p); 或 x=p; 执行完毕后 再 做 p=p+1

x= p++ 里是 后缀加加, 当前表达式中 不自增1, 所以它就等价于 p

如果A则B,表示当A为true时,B为true。当A为false时,B随意

然后对于!A||B

当A为false时,!A为true,整个式子为true,因此,B随意。

当A为true时,!A为false,需要判断B,B为true时,式子为true。

因此两者真值表完全一样,是等价的!

指的是一维指针 和一维数组 在访问上可以等价

换句话说 就是一维数组的数组名 等效于指针常量

int a[10], p=a;

那么 p[3] a[3] (p+3) (a+3) 这四个 等效。

不等价。而且你是学混了。。a += b与a = a + b等价(其实内部机制中有不一样的地方,初学不用考虑),a!=b 是一个布尔表达式,返回true或false,C语言默认用0表示false,1(或其他非0值)表示true,所以这个表达式只是返回了0或1而已(C语言使用布尔需要<stdboolh>头文件)。

没有a=a!b这个表达式,!不是运算符,只是布尔层次上的取反而已。

以上就是关于c语言中指针*p++为什么和*(p++)等价全部的内容,包括:c语言中指针*p++为什么和*(p++)等价、C语言中"如果A,则B"为什么与"!A||B"等价、6.3 那么C语言的“指针和数组等价”是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9629374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存