0%

常用技巧

摘要

  • C语言的编程技巧,常见问题及解决方法

C 字符串数组指针遍历

在 C 语言中,字符串数组的指针遍历是一种常见操作,通常用于处理多个字符串(字符数组)的情况。例如,我们可能有一个字符串数组,每个元素是一个以 \0 结尾的字符串。以下是如何用指针遍历这种字符串数组的讲解和代码示例:

示例:使用字符串数组和指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

int main() {
// 定义一个字符串数组
const char *strArray[] = {
"Hello",
"World",
"C Programming",
"Pointer Traversal",
NULL // 使用 NULL 作为数组的结束标记
};

// 定义一个指向字符串数组的指针
const char **ptr = strArray;

// 遍历数组
while (*ptr != NULL) {
printf("%s\n", *ptr); // 打印当前字符串
ptr++; // 移动指针到下一个字符串
}

return 0;
}

代码解释:

  1. 字符串数组

    • const char *strArray[] 定义了一个字符串数组,数组的每个元素是指向字符串的指针。
    • 最后一个元素 NULL 用来标记数组的结束,便于遍历。
  2. 指针遍历

    • const char **ptr = strArray:将指针 ptr 指向字符串数组的第一个元素。
    • while (*ptr != NULL):当指针未指向 NULL 时,继续遍历。
    • *ptr 表示当前字符串的地址,printf("%s\n", *ptr) 用于打印该字符串。
    • ptr++ 将指针移动到数组的下一个元素。
  3. 优点

    • 使用指针遍历不会受数组大小变化的影响,适合处理动态数组或未知长度的字符串数组。

示例输出:

1
2
3
4
Hello
World
C Programming
Pointer Traversal

提示

如果字符串数组的大小是固定的(例如 const char *strArray[4]),也可以用下标方式遍历:

1
2
3
for (int i = 0; i < 4; i++) {
printf("%s\n", strArray[i]);
}

希望这对你有所帮助!如果还有疑问,可以继续交流 😊

感谢老板支持!敬礼(^^ゞ