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

【带头学C++】----- 三、指针章 ---- 3.5 字符串与指针

        在 C++ 中,字符串可以通过指针来表示和操作。C++ 的字符串是由字符组成的字符数组,而指针则用于引用和操作内存中的数据。

1. 字符数组

1. 字符数组: 字符数组是最基本的字符串表示方式。可以使用字符数组来存储字符串,并使用指针来引用它。字符数组通常开辟的是数组的大小,这一点要和指针变量区分开来,存储的是所有字符。

char str[128] = "Hello world";
char* ptr = str;

       sizeof(str) = 128字节

     在这个例子中,一个字符数组 str 被初始化为 “Hello”,然后我们用字符指针 ptr 引用了这个字符数组。可以通过指针 ptr 来访问、修改和操作字符串。

                                   

2. 字符指针: 可以直接使用字符指针来引用字符串。例如:

char* str = "Hello";

在这个例子中,一个字符指针 str 用于引用字符串 “Hello”。可以通过指针 str 来访问字符串的内容。

3. std::string 类: C++ 还提供了一个方便的字符串类 std::string,它封装了字符串的操作和管理功能。std::string 类可以使用字符指针来初始化,也可以通过转换函数将字符数组或字符指针转换为 std::string 类型。例如:

std::string str = "Hello";

在这个例子中,一个 std::string 类型的变量 str 被初始化为 “Hello”。

2.字符串指针变量

char *str2 = "hello world";

str2 本质上是指针变量,存放的是字符串的首个字符的地址

 

     sizeof(str2) = 4字节或者8字节

 处于文字常量区的字符是只读的,不可修改的;

char *str2 = (char*)"hello world";

cout << str2<<endl;//  hello world

cout<<str2[6]<<endl;//w

str2[6] = 'W';    //不允许对只读变量进行赋值

对于上面1字符数组里面,在栈区存储的数据,就可以进行修改。这点是需要区分开来的。

 

 

http://www.lryc.cn/news/219246.html

相关文章:

  • 二十三种设计模式全面解析-深入解析桥接模式:解锁软件设计的灵活性
  • Ansible中的角色使用
  • C通过指针访问数组元素
  • 程序员成长树
  • 数字化时代,数据仓库是什么?有什么用?
  • android NetworkMonitor和ConnectivityService记录
  • Technology strategy Pattern 学习笔记1-Context: Architecture and Strategy
  • 数据结构-顺序表
  • 数据结构与算法 | 第三章:栈与队列
  • oracle查询数据库内全部的表名、列明、注释、数据类型、长度、精度等
  • 数据可视化:折线图
  • Python语言_matplotlib包_共80种--全平台可用
  • OpenFeign 的超时重试机制以及底层实现原理
  • redis安装
  • VM虚拟机逆向 --- [NCTF 2018]wcyvm 复现
  • 2024天津理工大学中环信息学院专升本机械设计制造自动化专业考纲
  • 华为OD机试 - 服务失效判断 - 逻辑分析(Java 2023 B卷 200分)
  • 刚入职因为粗心大意,把事情办砸了,十分后悔
  • Docker学习——③
  • EMC Unity存储系统如何查看SSD的使用寿命
  • python创建一个简单的flask应用
  • 阿里云域名实战
  • git关联远程仓库自己分支自用
  • eBPF BCC开源工具简介
  • Linux上后台运行进程(nohub、screen和tmux )
  • javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用
  • 重新思考边缘负载均衡
  • 构建一个CAN报文周期任务类
  • 深入理解计算机系统CS213 - Lecture 02
  • 【KVM】KVM介绍及功能概述