我正在使用c指针,其中如果我以* p ++递增,它会递增p,但只返回p指向递增之前的值。我怎样才能增加p指向的值。
答案 0 :(得分:6)
这样做:(* p)++
使用括号,表示您的意思是增加指向的值。
答案 1 :(得分:4)
postfix ++
的优先级高于*
,编译器会将*p++
视为*(p++)
。由于您希望增加*p
的值,因此您需要大括号:(*p)++
将返回*p
的值,然后将p
的值增加1。 ++(*p)
将增加*p
的值,然后返回此值。
您可以省略最后一个案例的大括号并写++*p
,但我建议不要这样做,因为++(*p)
是(*p)++
的双重句柄,但是++*p
它不是*p++
。