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语言的“指针和数组等价”是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)