【C++ Primer Plus学习记录】指针——声明和初始化指针

指针用于存储值的地址,因此,指针名表示的地址。*运算符被称为间接值或解除引用运算符,将其应用于指针,可以得到该地址处存储的值。

例如,假设manly是一个指针,则manly表示的是一个地址,而*manly表示存储在该地址处的值。*manly与常规int变量等效。

//4.15演示如何声明指针
#include
using namespace std;

int main()
{
	int updates = 6;
	int *p_updates;
	p_updates = &updates;

	//express values two ways
	cout << "Values:updates = " << updates << ",*p_updates = " << *p_updates << endl;

	//express address two address
	cout << "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
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;
}

你可能感兴趣的:(c++,学习,开发语言)