基于web的个人网站设计与实现百度推广退款投诉
指针用于存储值的地址,因此,指针名表示的地址。*运算符被称为间接值或解除引用运算符,将其应用于指针,可以得到该地址处存储的值。
例如,假设manly是一个指针,则manly表示的是一个地址,而*manly表示存储在该地址处的值。*manly与常规int变量等效。
//4.15演示如何声明指针
#include<iostream>
using namespace std;int main()
{int updates = 6;int *p_updates;p_updates = &updates;//express values two wayscout << "Values:updates = " << updates << ",*p_updates = " << *p_updates << endl;//express address two addresscout << "Addresses:&updates = " << &updates << ", p_updates = " << p_updates << endl;//use pointer to change value*p_updates = *p_updates + 1;cout << "Now updates = " << updates << endl;system("pause");return 0;
}
计算机需要跟踪指针指向的值的类型。例如,char的地址与double的地址看上去没什么两样,但char和double使用的字节数是不同的,它们存储值时使用的内部格式也不同。因此,指针声明必须指定指针指向的数据的类型。
例如,上述代码的声明:
int *p_updates;
程序清单4.16演示了如何将指针初始化为一个地址。
//4.16演示了如何将指针初始化为一个地址
#include<iostream>
using namespace std;int main()
{int higgens = 5;int *pt = &higgens;//初始化的是指针,而不是它指向的值cout << "Value of higgens = " << higgens << ";Address of higgens = " << &higgens << endl;cout << "Value of *pt = " << *pt << ",Address of higgens = " << pt << endl;system("pause");return 0;
}