指针数组
指针数组是一种特殊的数组,这类数组存放的全部是同一数据类型的内存地址。指针数组的定义形式为:
数据类型 *数组名[长度];
例如:
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 的地址赋给整型双重指针变量 dpi
**dpi = 100; // 间接引用变量 i,给变量 i 赋值
printf("%d", i); // 输出变量 i 的值
代码中定义了双重指针变量 dpi,将双重指针变量指向指针变量是,必须使用 取地址运算符得到指针变量自身的内存地址。通过双重指针变量间接引用所指向的变量时,因首先要获取其所指向指针变量的地址,然后再要获得所指向指针变量中保存的内存地址,所以需要用 2 个取地址运算符完成这 两重运算。
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级