*a++和*(a++)

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:44:01
老是搞不清楚 怎么区分啊

*a++的意思是 (*a)++是先取到该指针所取得值之后再进行自加,*(a++)的意思是指针变量自加一以后的指针变量所取得指啊

*a++相当于(*a)++意思是先取到该指针所取得值之后再进行自加
而*(a++)的意思是指针变量自加一以后的指针变量所取得值
明白?

我楼上回答正确,一楼回答不正确

取地址*和自加++优先级一样,从右至左的,所以一样。

这两个是一样的,都是取值之后再进行++运算
因为++运算符在变量之后时,会先计算表达式的值,然后再进行++

看样子还有不少和楼主一样没有搞清楚的人,希望看了我的回答明白

(*a)++,居然还有人写出这个表达式出来,真想骂他,(*a)是一个值,根本不是一个左值,怎么进行++运算

这俩表达式的效果是一样的,但内在实质是不一样,由于a是一个指针型的变量所以*a++的意思是在将a所指向的值使用后对a所指向的值进行自加,而*(a++)是在将a所指向的值使用后对a本身进行自加(加上的值等于a所指向的数据类型的值)。