我得到了这段代码,我必须选择正确的答案。
int x = 5;
int* y = &x;
cout << *y << endl;
现在:
当我在程序中输入它时,我只是弹出5
,但我不知道那是不是正确的答案。
好的,让我们回顾一下这段代码,但是你应该得到一本好书,从头开始。
int x = 5;
这定义了一个名为x的变量,它的初始值为5。
int * y = &x;
这定义了一个名为y的变量。它是一个int的指针,它的当前值是x的位置。如果x在存储器位置1000中,那么Y的当前值是1000。
cout << *y << endl;
这将输出y所指向的值。到目前为止,在这个例子中,y指向x,x是5,那么值就是5。
令人困惑的是<<
。如果你已经习惯了其他语言,那么这并不一定是你想的那样。这是件大事。
在C++中,您可以根据任何一方出现的内容来更改任何运算符的含义。在本例中,cout
是ostream
--输出流。输出流将运算符<<
定义为输出,而不是移位。因此,您所做的是将5
发送到cout
,然后它为您打印它。
所以这里没有按位数学。
这是创建一个变量x
,将一个指针指向它y
,并将它指向的值输出到5
。如果要更改x
的值,您将看到在输出*y
时反映出相同的更改。