Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  C语言  >  正文 C语言 指针数组 和 指向指针的指针

C语言 指针数组 和 指向指针的指针

发布时间:2017-12-13   编辑:www.jquerycn.cn
jquery中文网为您提供C语言 指针数组 和 指向指针的指针等资源,欢迎您收藏本站,我们将为您提供最新的C语言 指针数组 和 指向指针的指针资源
在C语言和C 语言中,数组元素全为指针的数组称为指针数组。存放地址的变量称为指针变量,指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。

指针数组

指针数组是一种特殊的数组,这类数组存放的全部是同一数据类型的内存地址。指针数组的定义形式为:

    数据类型 *数组名[长度];

例如:

const char *c[4] = { "China", "USA", "Rassia", "Japan" }; // 定义长度为 4 的常量字符型指针数组,将数组元素分别指向 4 个 字符串常量

int i;
for (i = 0; i < 4; i )
{
    puts( *(c i) );    // 数组指针数组元素所指向的字符串
}

指向常量的指针,必须用 const 定义为常量指针,以避免修改指针所指向的数据造成程序错误。由于 [] 符号比间接运算符 * 的优先级要高,所以首先是数组形式 c[4],然后才是与 * 结合,这样,指针数组内包含 4 个指针 c[0], c[1], c[2], c[3],分别指向 4 个字符串的首地址。



指针变量

指针变量可以指向另一个指针变量,这种操作并不是将一个指针变量所指向的内存地址传递给另一个指针变量,而是定义一种指向指针类型的指针变量,可将其称为双重指针。双重指针的定义形式为:

    数据类型 **变量名;

其中使用 2 个 间接运算符,如下例所示:

int i, *pi, **dpi;    // 声明整型变量 i、整型指针变量 pi 和 整型双重指针变量 dpi
pi = &i;            // 将变量 i 的地址赋给整型指针变量 pi
dpi = &pi;            // 将整型指针变量 pi 的地址赋给整型双重指针变量 dpi
**dpi = 100;        // 间接引用变量 i,给变量 i 赋值
printf("%d", i);    // 输出变量 i 的值

代码中定义了双重指针变量 dpi,将双重指针变量指向指针变量是,必须使用 取地址运算符得到指针变量自身的内存地址。通过双重指针变量间接引用所指向的变量时,因首先要获取其所指向指针变量的地址,然后再要获得所指向指针变量中保存的内存地址,所以需要用 2 个取地址运算符完成这 两重运算。

您可能感兴趣的文章:
C语言 指针数组 和 指向指针的指针
超详细的C 指针介绍及实例教程
C语言中变量定义/声明深入分析
Go 语言指针
Go 语言指向指针的指针
Python中有指针吗?
C语言中函数 与 指针学习笔记
C语言内存管理 为什么难检查数组访问越界
C语言const指针和指向const的指针的理解
如何区分C/C 常量指针和指针常量

[关闭]