You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:54:03