C语言指针初始化

C语言指针初始化教程

指针 变量与普通 变量 一样,在定义的时候,可以直接初始化,不过指针变量只能初始化为变量的地址,不可以直接初始化为值。

C语言指针变量初始化

语法

type *pName = &varName;

参数

参数 描述
type 指针变量的类型。
pName 指针变量名。
varName 指针要指向的变量。

说明

我们定义了一个指针变量 pName,其类型为 type,它指向了变量 varName。

案例

C语言指针变量初始化

初始化指针变量

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); int a = 2021; int *pa = &a; double d = 1099; double *pd = &d; printf("*pa = %d, pa = %p\n", *pa, pa); printf("*pd = %lf, pd = %p\n", *pd, pd); return 0; }

程序运行后,控制台输出如下图所示:

04_C语言指针变量初始化.png

我们分别定义了两个指针变量,并分别初始化为了两个变量的地址,此时,我们访问指针变量所保存的地址以及指针变量指向的变量的值,都可以正常访问。

C语言指针变量初始化

指针变量不可以初始化为具体的值

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); int *pa = 1024; printf("*pa = %d, pa = %p\n", *pa, pa); return 0; }

程序运行后,控制台输出如下图所示:

05_C语言指针变量初始化.png

这次,我们直接将指针变量初始化为了一个具体的值,而不是变量的地址,此时我们程序运行出错,这是因为,指针变量只能保持变量的地址,而我们的系统中没有 1024 这个内存地址,所以程序报错。

因此,在使用指针时,我们要切记,一定要使用指针保存变量的地址不是具体的值。

C语言指针初始化教程

指针变量与普通变量一样,在定义的时候,可以直接初始化,不过指针变量只能初始化为变量的地址,不可以直接初始化为值。