在各种指针方案中,“ *”是什么意思?

时间:2020-10-24 15:24:11

标签: c++ syntax

我知道*被广泛用作乘法运算符,尽管它可以用于更多领域。 例如:

int number = 5;                 
int* pointer = &number;

在此示例中,使用*语法声明和定义了int指针到变量号的RAM地址值。现在,如果我们要显示变量“ number”的RAM地址值 我们将不得不再次使用“ *”。像这样:

int pointer_value = *pointer;

现在,我们再次使用*语法,但是在int变量“ pointer_value”的定义中。这将显示指向变量“数字”值的RAM地址的值。

现在我的问题是:“ *”主要用于什么,我看到了很多这样的示例:

const char* word;

等等。“ *”的很多机会可以使我感到困惑。有人可以解释吗?

2 个答案:

答案 0 :(得分:3)

从语法上讲,声明是int *pointer,而不是int* pointer,而*在声明和表达式中传达的含义基本上相同。

在表达式中,*pointer使用其内存地址引用某个对象。

诸如int *pointer之类的声明意味着*pointer将引用int。由于*pointer指的是int,因此这意味着pointer是指向int的指针。 herehere对此进行了进一步说明。

在表达式中,当*出现为一元运算符时(紧随其后的是操作数,而紧随其后的是无操作数),则是间接运算符,意味着将操作数用作引用该对象的地址。在该地址的对象。

*作为二进制运算符出现时(紧接其前的操作数,紧随其后的是操作数),它是乘法运算符。

答案 1 :(得分:1)

此“ *”为星号,如果要打印num的值,则打印*指针。 如果要打印到地址,则打印指针或&num打印num的地址。如果要打印地址指针,请打印&pointer。