C 练习实例77
题目:练习指向指针的指针(使用多级指针遍历字符串数组)。
程序分析:无。
程序源代码:
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
#include <stdio.h>
#include <stdlib.h>
int main() {
// 定义一个字符指针数组,存储字符串常量
const char *s[] = {"man", "woman", "girl", "boy", "sister"};
// 定义一个指向字符指针的指针变量
const char **q;
int k;
// 遍历数组,并通过指向指针的指针输出每个字符串
for (k = 0; k < 5; k++) {
q = &s[k]; // 让指针 q 指向字符指针数组中第 k 个元素的地址
printf("%s\n", *q); // 解引用 q,输出对应的字符串
}
return 0;
}
代码说明:
指向指针的指针练习:
q
被定义为const char **
类型,它是一个指向const char *
的指针。通过将q
赋值为&s[k]
,q
指向了字符指针数组s
中第k
个元素的地址。q = &s[k]
的作用:s[k]
是字符指针数组中的第k
个元素,&s[k]
表示第k
个元素的地址。因此,q
最终指向了字符指针数组中的一个元素。printf("%s\n", *q)
的作用:*q
解引用q
,即获取s[k]
指向的字符串内容,然后打印出来。
以上实例运行输出结果为:
man woman girl boy sister