C语言 指针

2024-10-31 19:16:25
有2个网友回答
网友(1):

已经执行了pointer_1=&a;语句,
&*pointer_1那其实就是pointer_1,因为*和&可以看成是逆运算,两个在一起就和没有的效果一样
*&a也是一样,就是a
(pointer_1)++和pointer_1++是一样的,都是指下数组中下个元素
要是所指的对象不是数组首地址(数组第一个元素的地址),而用了上面两种语句,编译不会出错,但结果不会是你想要的结果
不过*pointer_1++和(*pointer_1)++是不一样的
前者是指向数组中下个元素,后者是此元素自增1.
++和*的运算级别一样,且都是右结合运算符,因此从右往左运算,加括号可以改变它们的顺序

网友(2):

&*pointer_1 跟 pointer_1 等价

*&a 跟 a等价

(pointer_1)++ 和 pointer_1++ 在这个表达式里面是等价的