当前位置: 首页 > web >正文

const char* 指向字符串数组和字符串的区别

const char* 可以指向单个字符串常量,也可以指向字符串数组(即指针数组),它们有以下区别:

1. 指向单个字符串常量

const char* str = "Hello World";
  • 指向一个以 null 结尾的字符数组(字符串)
  • 内存布局:'H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd' '\0'
  • 只能访问这一个字符串

2. 指向字符串数组(指针数组)

const char* strs[] = {"Hello", "World", "C++"};
const char** p = strs; // 指向字符串数组
  • 指向一个数组,数组的每个元素都是 const char*(即每个元素指向一个字符串)
  • 内存布局:
    • strs[0]"Hello\0"
    • strs[1]"World\0"
    • strs[2]"C++\0"
  • 可以访问多个字符串

主要区别

特性

指向单个字符串

指向字符串数组

声明方式

const char*

const char*[]const char**

指向内容

一个字符串

多个字符串的指针数组

访问方式

直接使用指针

需要通过索引访问元素

内存布局

连续字符+null终止符

多个指针,每个指向一个字符串

示例代码

#include <stdio.h>int main() {// 指向单个字符串const char* singleStr = "Hello";printf("Single string: %s\n", singleStr);// 指向字符串数组const char* strArray[] = {"Apple", "Banana", "Cherry"};const char** ptrToArray = strArray;printf("String array:\n");for(int i = 0; i < 3; i++) {printf("%d: %s\n", i, ptrToArray[i]);}return 0;
}

http://www.xdnf.cn/news/5808.html

相关文章:

  • css3基于伸缩盒模型生成一个小案例
  • 华三路由器单臂路由配置
  • 数字IC后端培训教程之数字后端项目典型案例分析
  • Spring Boot 的 CommandLineRunner
  • 【爬虫】12306查票
  • android特许权限调试
  • 特伦斯折叠重锤V70:实现专业演奏,从这里开始
  • DES两种加密模式
  • 普林斯顿数学三剑客读本分析。
  • element ui 实现el-form表单校验不通过时自动滚动到不通过的第一项去
  • 【题解-洛谷】B3881 [信息与未来 2015] 拴奶牛
  • 告别静态配置!Spring Boo动态线程池实战指南:Nacos+Prometheus全链路监控
  • 今日行情明日机会——20250512
  • std::move 和 std::forward
  • 图像的EXIF方向信息(Orientation标签)
  • MySQL 备份与恢复
  • 45、跳跃游戏Ⅱ
  • JavaScript双问号操作符(??)详解,解决使用 || 时因类型转换带来的问题
  • 消息队列RocketMQ-docker部署保姆级教程(从0到1)(2)
  • 16.three官方示例+编辑器+AI快速学习webgl_buffergeometry_lines_indexed
  • apt 软件源与 Docker 镜像源
  • Westlake-Omni 情感端音频生成式输出模型
  • 软考高分备考秘籍:综合知识、案例分析、论文全攻略
  • 如何使用VBA宏高效操作Word文档中的表格(对齐与样式)
  • 六、STM32 HAL库回调机制详解:从设计原理到实战应用
  • nginx-整合modsecurity做waf
  • Ubuntu 22初始配置(root、ssh)
  • 航电系统之电传飞行控制系统篇
  • IDR方程迭代求解算法介绍与比较
  • Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用