指针 变量与普通 变量 一样,在定义的时候,可以直接初始化,不过指针变量只能初始化为变量的地址,不可以直接初始化为值。
type *pName = &varName;
参数 | 描述 |
---|---|
type | 指针变量的类型。 |
pName | 指针变量名。 |
varName | 指针要指向的变量。 |
我们定义了一个指针变量 pName,其类型为 type,它指向了变量 varName。
初始化指针变量
#include <iostream>
using namespace std;
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
int a = 2021;
int *pa = &a;
double d = 1099;
double *pd = &d;
cout << "*pa = " << *pa << " pa = " << pa << endl;
cout << "*pd = " << *pd << " pd = " << pd << endl;
return 0;
}
程序运行后,控制台输出如下图所示:
我们分别定义了两个指针变量,并分别初始化为了两个变量的地址,此时,我们访问指针变量所保存的地址以及指针变量指向的变量的值,都可以正常访问。
指针变量不可以初始化为具体的值
#include <iostream>
using namespace std;
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
int *pa = 1024;
cout << "*pa = " << *pa << " pa = " << pa << endl;
return 0;
}
程序运行后,控制台输出如下图所示:
这次,我们直接将指针变量初始化为了一个具体的值,而不是变量的地址,此时我们程序运行出错,这是因为,指针变量只能保持变量的地址,而我们的系统中没有 1024 这个内存地址,所以程序报错。
因此,在使用指针时,我们要切记,一定要使用指针保存变量的地址不是具体的值。
指针变量与普通变量一样,在定义的时候,可以直接初始化,不过指针变量只能初始化为变量的地址,不可以直接初始化为值。