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

C++中如何使用星号访问char*数组指定字符串的剩余字符?

用星号访问字符串剩余字符的方法

好问题!咱们来梳理下怎么用星号操作符访问strings_array[2]里除第一个字符外的剩余内容~

首先得明确:strings_array[2]是一个指向字符串"shizuka"首字符的指针,*strings_array[2]等价于strings_array[2][0],也就是取第一个字符s。要访问后面的字符,核心思路是移动指针后再解引用。

单个字符的访问

  • 访问第二个字符(对应原代码的strings_array[2][1]):可以写成 *(strings_array[2] + 1)
    • 原理:strings_array[2]是指向's'的指针,+1会让指针向后移动1个char的位置(因为char占1字节),指向'h',再用*解引用就拿到这个字符。
  • 访问第三个字符:*(strings_array[2] + 2),对应字符'i'
  • 以此类推,访问第n个字符(从0开始计数),就用 *(strings_array[2] + n)

遍历剩余所有字符

如果想一次性输出从第二个字符开始的全部内容,可以用循环配合指针:

// 从第二个字符开始的指针
char* current_ptr = strings_array[2] + 1;
// 遍历直到遇到字符串结束符'\0'
while (*current_ptr != '\0') {
    std::cout << *current_ptr;
    current_ptr++; // 指针向后移动一位
}

运行这段代码会输出hizuka。

小提示

另外提个细节:你原代码里把字符串字面量赋值给char*是不推荐的,因为字符串字面量是const类型的,修改它们会导致未定义行为。建议把数组声明改成:

const char* strings_array[100];

内容的提问来源于stack exchange,提问作者Aquarius_Girl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:39:43