指针变量的定义与普通变量的定义类似,只是在类型标识符前加上了一个星号(*),表示该变量是一个指针变量。指针变量存储的是一个地址,这个地址指向另一个变量。
指针变量的赋值可以通过将另一个变量的地址赋值给指针变量来实现。例如,如果有一个整型变量i,可以通过以下方式将其地址赋值给一个指针变量i_point:
```
int *i_point;
i_point = &i;
```
在这个例子中,&i表示取变量i的地址,并将该地址赋值给指针变量i_point。这样,i_point就指向了变量i。
指针变量可以通过*运算符来访问指向的变量的值。例如,可以通过*i_point来访问变量i的值:
```
int i_value = *i_point;
```
在这个例子中,*i_point表示访问指针变量i_point所指向的变量的值,并将该值赋值给变量i_value。
指针变量的一个重要应用是在函数中传递参数。通过将变量的地址传递给函数的指针参数,可以在函数内部直接修改变量的值,而无需返回值。这种方式称为通过指针传递参数。
指向变量的指针变量是指指针变量本身也是一个变量,其值是一个地址,而该地址又指向另一个变量。可以通过定义一个指向指针变量的指针变量来实现。
例如,如果有一个指针变量i_point,可以定义一个指向i_point的指针变量p_i_point:
```
int **p_i_point;
p_i_point = &i_point;
```
在这个例子中,&i_point表示取指针变量i_point的地址,并将该地址赋值给指针变量p_i_point。这样,p_i_point就指向了指针变量i_point。
通过p_i_point可以访问i_point所指向的变量i的值:
```
int i_value = **p_i_point;
```
在这个例子中,**p_i_point表示访问指针变量p_i_point所指向的指针变量i_point所指向的变量的值,并将该值赋值给变量i_value。
指向变量的指针变量可以用于多级间接访问,可以通过多次使用*运算符来一级一级地访问。例如,可以通过***p_i_point来访问变量i的值:
```
int i_value = ***p_i_point;
```
在这个例子中,***p_i_point表示访问指针变量p_i_point所指向的指针变量i_point所指向的指针变量i_point所指向的变量的值,并将该值赋值给变量i_value。
总结来说,变量的指针和指向变量的指针变量在C语言中起着非常重要的作用。通过指针变量,可以直接访问其他变量,并且可以通过指向变量的指针变量实现多级间接访问。掌握指针的概念和使用方法对于理解和使用C语言来说是非常重要的。