指针可以理解为和int,double同样性质的数据类型,占8个字节(64位),储存一个地址。
运算符&可以获得一个数据的地址,运算符*应用于指针可以得到指针指向的地址储存的值(解除引用)。
int num = 100;
int* p_num = #
*p_num = *p_num + 1;
cout << num << endl << p_num<<endl<<#
结果是
101 //*p_num此处和num等效
000000888C38FAA4000000888C38FAA4 //p_num中储存着num的地址
int* pr表示pr指向的地址中储存的数字是int类型,且会再向后读取三个字节(int在64位是4字节)换成double,long,short同理
在对指针应用*运算符前,一定保证指针指向了一个确定、合适的地址。
int* pt = (int*)0XB8000000;
可以这样给指针一个确定的地址
int num = 100;
int* pr = #
int** pr2 = ≺
cout