C++指針(&和*)運算符
C++提供了兩個指針運算符:(a)地址操作符(&);(b)間接運算符(*)。
指針是包含另一個變量的地址的變量,也可以說是包含另一個變量的地址的變量被認為是“點”的另一個變量。變量可以是任何數據類型,包括一個對象,結構或再次是指針本身。
.(點)運算符和->(箭頭)運算符是用來引用類,結構和聯合各個成員。
操作地址 &:
&是一個一元運算符返回其操作數的內存地址。例如,如果var是整型變量,&var為它的地址。這個操作符具有相同的優先級和從右到左關聯的其他一元運算符。
應閱讀相關&“地址”運算符,這意味著&var將被解讀為“var的地址”,。
間接尋址運算符 *:
第二個運算符是間接操作*,並且它是&互補。它是一元運算符,返回位於其操作數所指定的地址的變量的值。
下麵的程序執行兩個操作
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // take the address of var ptr = &var; // take the value available at ptr val = *ptr; cout << "Value of var :" << var << endl; cout << "Value of ptr :" << ptr << endl; cout << "Value of val :" << val << endl; return 0; }
讓我們編譯和運行上麵的程序,這將產生以下結果:
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000