指针变量的定义与初始化

指针变量的定义与初始化

  • 指针变量的定义形式:
    *类型名 指针变量名[=地址];
    类型名是指针变量所指向对象的类型,[=地址]用于在定义时初始化指针变量,可以省略。
int a = 1;            /*a是一个整型变量,初值为1*/
int* p;               /*p是指针变量,未初始化,此时不指向任何对象*/
  • 指针变量的初始化
    指针的作用在于其应指向某个对象,使指针指向一个对象的操作称为指针变量的初始化。
    指针变量的初始化可以在定义指针时或者是在定义指针变量后进行,常见的方式有:
    ①指针指向变量的初始化
    指针变量名=&变量名
    例如:
    定义时初始化
int a = 2, * pa = &a;

定义后初始化

int a = 2, * pa;
pa = &a;

这样两种形式是等价的。
②指针指向数组的初始化
指针变量名=数组名
例如:

int a[10], * p = a;         /*定义时初始化*/
int a[10], * p;             /*定义后初始化*/
p = a;

在C语言中,一维数组名是数组的指针,指向首元素的地址,使用数组名初始化指针变量时,不能使用“&”,使用数组中的元素初始化指针变量时,需要使用“&”。
③使用指针变量初始化其他同类型指针变量
指针变量名1=指针变量名2
例如:

int a = 5, *pa = &a;            /*定义时初始化*/
int *pb = pa;
int a = 5, * pa, * pb;           /*定义后初始化*/
pa = &a;
pb = pa;

④指针可以被初始化为0或NULL
指针变量名=0(NULL)
NULL是标准头文件中定义的符号常量。这种初始化的方式表示其目前还未指向任何对象。

你可能感兴趣的:(C语言,笔记,c语言,指针)