【文件属性】:
文件名称:结构体与联合-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2021-06-08 13:20:35
嵌入式 Linux C
(2)指向指针的指针
在讲解指针数组时已经提到指针数组也有地址,其指向的是指针数组中的指针。那么,
这里就提出了一个概念:指针的指针。由于指针变量也是一个变量,只不过存放的内容是一
个地址,因此,指针变量本身也有地址,就如在上面所讲述到的指针数组中的每一个元素——
指针都有它们各自的地址一样。那么,存放这些指针变量地址的指针就是指针的指针。它的
定义方式如下所示:
数据类型 **变量名;
要注意的是,这里“指针的指针”还是变量,它所指向的是指针变量的地址,例如有如下定义:
char **p;
这样就定义了一个指向指针的指针。指针的指针通常用在指针数组的等价表示中。本书
在 6.2.3 中指出了指针和数组等价的条件,这些条件也适用于指针数组和指针的指针。例如,
上面的程序改为用指针的指针来书写就是如下形式:
void main(int argc, char *argv[])
{
/*argc 在程序开始时自动赋值*/
while(argc > 1)
{
/*数组名代表数组首地址*/
++argv;
/*打印出数组所指向的内容,注意“*argv”为地址*/
printf("%s\n", *argv);
/*计数器减 1*/
--argc;
}
}
从该程序中可以看到,使用“++argv”和使用“argv[++i]”是等价的,可以取得数组中
的其他元素,使用“*argv”指向的是该字符数组的首地址。
6.3 结构体与联合
6.3.1 结构体
1.结构体的定义
结构体和数组一样,也是一种构造型数据类型,它是由基本数据类型构成的、并用一个