如何访问char指针数组中存储的单个字符?
问题解答
你定义的const char *a[]是C语言中的字符串指针数组,每个元素a[i]是指向对应字符串首地址的const char*类型指针,获取单个字符有两种等价写法:
- 下标访问写法:直接使用
a[i][j]即可。其中i是目标字符串在数组中的索引(从0开始计数),j是目标字符在对应字符串中的索引(同样从0开始计数)。 - 指针运算写法:
*(a[i] + j),和下标写法的运行逻辑完全一致,效果相同。
给你举个实际用法的示例:
#include <stdio.h> #include <string.h> int main() { const char *a[] = {"apple", "banana", "cherry"}; // 取数组中第2个字符串"banana"的第3个字符'n' char target = a[1][2]; printf("取到的字符为:%c\n", target); // 等价指针写法 char target2 = *(a[1] + 2); printf("指针写法取到的字符为:%c\n", target2); return 0; }
注意:访问时请确保
j的取值小于对应字符串的有效长度(可通过strlen(a[i])获取),避免越界访问非法内存引发异常。
内容的提问来源于stack exchange,提问作者Rasheed Nesbitt
相关产品推荐
相关产品推荐

