为什么复合赋值或迭代运算符不适用于解除引用的指针

迪斯沃克

如果我想增加一个引用 a 位置的指针,int我不能使用这些方法:

 *Pntr +=1;
 *Pntr++;

但是,使用此方法没有问题:

 *Pntr = *Pntr + 1;

发生了什么导致这些速记方法不起作用。(还必须指出我正在使用 Visual Studio,它有时会表现得很奇怪,所以我想我应该提到这一点)

HS

如果我想增加一个引用 int 位置的指针...... [强调添加]

请注意,当您增加一个指针时,它会按指针可以指向的对象大小逐步增加

既然你提到了——

使用这种方法没有问题:

*Pntr = *Pntr + 1;

因此,它看起来像你想增加在位置值,通过指出Pntr,通过1

后缀++运算符的优先级高于一元运算*符(检查运算符优先级表)。所以,表达式

*Pntr++;

将被评估为

*(Pntr++);

这将按Pntr大小移动指针int,然后取消引用它。
要增加指针的值,您可以执行以下操作:

(*Pntr)++;

您还可以使用前缀++运算符:

++*Pntr;

表达方式

*Pntr +=1;

*Pntr = *Pntr + 1;

,都将增加在位置被指向的值Pntr通过1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL Update查询不适用于and运算符

为什么Diamond运算符不适用于Java 7中的java.util.Collections方法?

双冒号运算符不适用于Java

地图运算符不适用于AngularFireAuth Observable

为什么析取赋值运算符| =不适用于布尔向量?

安全导航运算符(孤独运算符)不适用于哈希

属性“ pipe”不适用于“ zip”运算符?

RXJS运算符不适用于Firebase

C ++为什么自动重新应用箭头(->)运算符不适用于指针对指针类型?

Json运算符似乎不适用于变量

some()函数不适用于&&运算符

为什么对重载运算符'<<'的异常说明符不适用于任何std :: ostream对象,但对库中定义的异常符无效?

自动映射:取消引用可能为空的引用吗?空条件运算符不适用于自动映射

为什么赋值运算符=不返回指针的值而是取消引用的值?

右移运算符不适用于标志枚举

MYSQL <=运算符不适用于9999值

为什么〜(true ^ true)不成立?布尔运算符(否定)适用于`unsigned char`,而不适用于布尔值吗?(C ++)

scrollTop不适用于2个运算符

运算符 % 不适用于空值

插入运算符不适用于向量,我不知道为什么

while 循环不适用于 == 运算符

为什么三元运算符不适用于使用“hasClass”?

为什么正则表达式 setminus 运算符不适用于 MySQL?

sass 乘法运算符不适用于 %

模数运算符 (%) 不适用于大数字

Firestore IN 运算符不适用于布尔运算符

“WITH”子句不适用于 in 运算符

为什么我的 Timber/Twig 中的运算符不适用于我的条件语句?

purrr::map 不适用于管道运算符