12深入理解C指针之---指针多层间接引用

2023-05-16,,

  该系列文章源于《深入理解C指针》的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教。

  一、指针多层引用

    1、定义:指针可以用不同的间接引用层级,通常使用多重指针或字符数组来实现

    2、特征:

      1)、使用二重字符指针表示

      2)、使用字符数组表示

      3)、使用多重字符指针表示

    3、应用:

      1)、主函数中char **argc参数用法

      2)、主函数中char *argc[]参数用法

      3)、二重指针char  **arrName[]用法

  代码如下:1)、主函数中char **argc参数用法

  /* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
2 * 作者代号: *** :guochaoxxl
3 * 版权声明: *** :(魎魍魅魑)GPL3
4 * 联络信箱: *** :guochaoxxl@gmail.com
5 * 文档用途: *** :深入理解C指针
6 * 文档信息: *** :~/WORKM/StudyCode/CodeStudy/cnblogs_understanding_and_using_c_pointers/chapter1/test05.c
7 * 修订时间: *** :2017年第39周 10月01日 星期日 上午08:56 (274天)
8 * 代码说明: *** :演示char **argv用法
9 * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/
#include <stdio.h> int main(int argc, char **argv)
{
for(int i = ; i < argc; i++){
printf("The main argument %d is %s\n", i, *(argv + i));
}
printf("\n"); return ;
}

  2)、主函数中char *argc[]参数用法

  /* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
2 * 作者代号: *** :guochaoxxl
3 * 版权声明: *** :(魎魍魅魑)GPL3
4 * 联络信箱: *** :guochaoxxl@gmail.com
5 * 文档用途: *** :深入理解C指针
6 * 文档信息: *** :~/WORKM/StudyCode/CodeStudy/cnblogs_understanding_and_using_c_pointers/chapter1/test05.c
7 * 修订时间: *** :2017年第39周 10月01日 星期日 上午08:56 (274天)
8 * 代码说明: *** :演示char *argv[]用法
9 * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/
#include <stdio.h> int main(int argc, char *argv[])
{
for(int i = ; i < argc; i++){
printf("The main argument %d is %s\n", i, argv[i]);
}
printf("\n"); return ;
}

  3)、二重指针char  **arrName[]用法

  /* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
2 * 作者代号: *** :guochaoxxl
3 * 版权声明: *** :(魎魍魅魑)GPL3
4 * 联络信箱: *** :guochaoxxl@gmail.com
5 * 文档用途: *** :深入理解C指针
6 * 文档信息: *** :~/WORKM/StudyCode/CodeStudy/cnblogs_understanding_and_using_c_pointers/chapter1/test07.c
7 * 修订时间: *** :2017年第39周 10月01日 星期日 上午09:26 (274天)
8 * 代码说明: *** :演示char **bestBooks[3]的用法
9 * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/
#include <stdio.h> int main(int argc, char **argv)
{
//定义书名的数组
char *titles[] = {"A Tale of Two Cities",
"Wuthering Heights",
"Don Quixote",
"Odyssey",
"Moby-Dick",
"Hamlet",
"Gulliver's Travels",
};
char **bestBooks[]; //最好的图书
char **englishBooks[]; //英文图书 bestBooks[] = &titles[];
bestBooks[] = &titles[];
bestBooks[] = &titles[]; englishBooks[] = &titles[];
englishBooks[] = &titles[];
englishBooks[] = &titles[];
englishBooks[] = &titles[]; for(int i = ; i < ; i++){
printf("The bestBooks is: %s\n", *bestBooks[i]);
}
printf("\n");
for(int j = ; j < ; j++){
printf("The englishBooks is: %s\n", *englishBooks[j]);
} return ;
}

  代码都很简单,自行理解即可。

12深入理解C指针之---指针多层间接引用的相关教程结束。

《12深入理解C指针之---指针多层间接引用.doc》

下载本文的Word格式文档,以方便收藏与打印。