我知道*被广泛用作乘法运算符,尽管它可以用于更多领域。 例如:
int number = 5;
int* pointer = &number;
在此示例中,使用*语法声明和定义了int指针到变量号的RAM地址值。现在,如果我们要显示变量“ number”的RAM地址值 我们将不得不再次使用“ *”。像这样:
int pointer_value = *pointer;
现在,我们再次使用*语法,但是在int变量“ pointer_value”的定义中。这将显示指向变量“数字”值的RAM地址的值。
现在我的问题是:“ *”主要用于什么,我看到了很多这样的示例:
const char* word;
等等。“ *”的很多机会可以使我感到困惑。有人可以解释吗?
答案 0 :(得分:3)
从语法上讲,声明是int *pointer
,而不是int* pointer
,而*
在声明和表达式中传达的含义基本上相同。
在表达式中,*pointer
使用其内存地址引用某个对象。
诸如int *pointer
之类的声明意味着*pointer
将引用int
。由于*pointer
指的是int
,因此这意味着pointer
是指向int
的指针。 here和here对此进行了进一步说明。
在表达式中,当*
出现为一元运算符时(紧随其后的是操作数,而紧随其后的是无操作数),则是间接运算符,意味着将操作数用作引用该对象的地址。在该地址的对象。
当*
作为二进制运算符出现时(紧接其前的操作数,紧随其后的是操作数),它是乘法运算符。
答案 1 :(得分:1)
此“ *”为星号,如果要打印num的值,则打印*指针。 如果要打印到地址,则打印指针或&num打印num的地址。如果要打印地址指针,请打印&pointer。