何时对指针使用解引用运算符C ++

MKSnazzy

我目前正在学习C ++。没在学校 使用书籍,教程和练习。

让我感到困惑的一件事是,我何时无法使用答案来查找指针,而是何时将解引用运算符(*)用于指针。例如,从我目前正在阅读的C ++入门中:

char *cp = get_string();
if (cp) /* ... */    // true if the pointer cp is not zero 

while (*cp) /*    ... */    // true if *cp is not the null character

我不明白为什么在if语句中它只是不带dereference运算符的cp,然后在while语句中它使用dereference运算符。还有其他示例,例如在for循环中混合使用,但这是本书中最新的示例,使我感到困惑。在此先感谢您的帮助。

简介:什么时候仅使用指针的变量名而不进行取消引用,何时将其与取消引用一起使用。以及如何区分。

毫米

指针是一个变量,其值是另一个变量或对象的地址。我们说指针“指向”另一个对象。

编写表达式时,cp表示指针变量。*cp表示指针变量保存其地址的变量或对象。

尝试在您的头脑中清楚“指针”和“所指事物”之间的区别。这是两件截然不同的事情,每件事情都有自己的生存期和存储要求。

因此,要解决您的问题中的代码,请if (cp)测试指针。它的缩写if ( cp != nullptr ),即指针是否已设置为指向某处?(换句话说,指针当前是否持有另一个对象的地址?)

if (*cp)意味着if (*cp != 0),它正在询问其地址存储在指针中的对象的值(换句话说,所指向的对象的值)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指针地址/解引用运算符

来自分类Dev

结合使用增量运算符和指针解引用时的意外行为

来自分类Dev

关于C中解引用运算符(“ *”)的困惑

来自分类Dev

关于智能指针中的解引用和成员选择运算符的定义

来自分类Dev

C ++:使用函数指针重载<<运算符

来自分类Dev

C++ 使用运算符删除自动(堆栈)指针

来自分类Dev

何时在mongodb中使用“ $ and”运算符?

来自分类Dev

何时使用表运算符APPLY

来自分类Dev

何时在mongodb中使用“ $ and”运算符?

来自分类Dev

在C中,如何轻松区分将*用作指针,*用作解除引用运算符,*用作乘法运算符?

来自分类Dev

使用预增量运算符指向指针取消引用的指针

来自分类Dev

使用引用运算符&在C ++中从函数返回

来自分类Dev

我何时可以取消使用星号运算符取消引用?

来自分类Dev

指针,* 运算符

来自分类Dev

C ++中的指针运算符列表

来自分类Dev

C ++指针转换运算符

来自分类Dev

C ++:重载“对象指针” *运算符

来自分类Dev

C ++运算符重载返回指针

来自分类Dev

C ++指针,++运算符行为

来自分类Dev

C ++指针的强制转换运算符

来自分类Dev

C ++运算符重载返回指针

来自分类Dev

C ++中的指针运算符列表

来自分类Dev

声明中的C ++引用运算符

来自分类Dev

引用运算符::

来自分类Dev

指针和引用+重载运算符

来自分类Dev

了解C语言中的解引用,地址和数组下标运算符

来自分类Dev

解引用运算符不会被重载

来自分类Dev

解引用运算符(*)char *和int *之间的区别

来自分类Dev

如果根本不使用单个取消引用运算符,则指向指针的指针将打印什么值?

Related 相关文章

热门标签

归档