1 题目
功能:使用指针的指针输出字符串
描述:
使用指针的指针输出字符串。
首先要使用指针数组创建一个字符串数组,然后定义指向指针的指针,使其指向字符串数组,并使用其输出数组的字符串
2 思路
char **p;
这里指向指针的指针,表示指针变量 p 是指向一个指针变量。*p 就表示 p 指向另外一个指针变量,即一个地址。
**p 表示 p 指向指针变量指向的对象的值。 例如:* (p+1) 表示 accounts[1] 的内容,指向 accounts[1] 的首地址
3 代码
#include <stdio.h> #define N 5 /** 函数:fun() 功能:使用指针的指针输出字符串 描述:使用指针的指针输出字符串。 首先要使用指针数组创建一个字符串数组,然后定义指向指针的指针,使其指向字符串数组,并使用其输出数组的字符串 **/ int main(int argc, char const *argv[]) { char *accounts[] = { "你好 C语言 1", "你好 C语言 2", "你好 C语言 3", "你好 C语言 4", "你好 C语言 5" }; // 指针数组创建字符串数组 char **p; p = accounts; // 注意这里一定是二重指针来指向accounts for (int i = 0; i < N; ++i) { printf("%s\n", *(p+i)); // 使用指针将字符串数组中的字符串打印出来 } }
示例结果:
$ gcc ex015.c -o demo $ ./demo 你好 C语言 1 你好 C语言 2 你好 C语言 3 你好 C语言 4 你好 C语言 5