c++ | 字符串与指针的恩断情仇

news2024/11/27 12:48:43

我想,c/c++中难的不是指针,而是其中的变化,尤其是思维的转变。很多东西 就是容易掉进陷阱。好在,你我都是善于思考的码农!

大致情况是这样的,底层<–>c语言<–>c++<–>应用
而数据的传输的最基础媒介就是 字符串,
然后经常是 c 的字符串 <–>c++字符串
举个例子, c++ 中直接用string 定义,而c中只能以最基础的 char 进行延伸

	//请注意  str 是一个 string 类型的对象 如果看源码,就是  通过 char 封装的一个类,(候捷老师有讲过 ,时间久了,有的东西有忘了)
	std::string str = "hello world";
	//   str2 是一个常指针变量,指向 内容  str 而 str 对象 就是在内存一块确定长度的字符数组。补充一句 这一块可以去看 c++primer  plus (记得没错的话,应该是在指针那部份,在前面) 讲的很到位 但我又怕说错 后续会补充
	//简单来说 就是  *str2 这个值 被焊死了 不能通过  *str2 充当变量,但是可以 以常量的身份出现
	const char *str2 = str;

	//所以经典问题出现了
	std::string str1 = "hello123";
	std::string str2 = "hello456";
	
	*str1 = *str2;		//	这是错误的

	str1 = str2;		//这是对的	--> *str1 == "hello456"

	//补充  (字节流输出)
	std::cout<<str2<<std::endl;			// str2是指向 "hello456"的 指针 也就是地址变量 存储的是地址  内容就是  十六进制数字 但是 cout 会输出 该地址在内存的内容  以 '\o' 结尾
	//但是,如果 是 cout<<指向整数的指针<<endl; 会输出该十六进制地址

贴上一些测试
在这里插入图片描述

在这里插入图片描述

#最后总结一下,其实指针 就是纸老虎,他本质就是也是变量 ,只是这个变量是地址类型,是变量,说明也是一个对象,然后需要分配空间,所以要和另个名次,引用做好区分 。引用(取别名)
#然后,复杂的其实 是 指针 和各种各样的 其他因素搅和在一起,所以容易绕进去!
#还有就是,多看专业人士写的书,就像上面提到的那本字典
#多思考,网上很多人的解释,都是基于他们的理解,夹杂主观因素,当然也包括我,后面到具体内容,还是要自己慢慢去吃透!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

攻击域控丝滑小连招~

点击星标&#xff0c;即时接收最新推文 如果已经获得本地管理员账号或是域管理员账号&#xff0c;那么下一个目标通常是域控制器&#xff0c;对于渗透测试人员来说&#xff0c;光荣与荣耀的那一刻就是成功从域控制器提取所有的哈希值。但即使是拥有管理员权限&#xff0c;也无法…

windows10编译高版本openssl

参考文章 参考文章中的windows编译为低版本&#xff0c;在高版本的openssl编译中已经没有&#xff1a;“ms\do_ms.bat”这个脚本了&#xff0c;现记录下编译过程 1、准备工作 安装ActivePerl&#xff0c;安装后会自动写入环境变量&#xff0c;参照参考文章测试安装成功与否&a…

封装element-table合计行Hooks方法

背景: 在我们常做的后台管理系统中&#xff0c;经常的会遇到关于表格合计行的计算以及显示&#xff0c;如下图&#xff0c;我们采用的是element框架这一套 封装&#xff1a; 由于考虑到该需求是最常见的&#xff0c;每个中心可能都会涉及到&#xff0c;我们封装公共方法&#…

解决方案中word中分节符的使用

解决方案中必不可少的两个“符号”&#xff0c;分页符&#xff0c;分节符 有了分节符&#xff0c;可以为不同节设置不同的页眉页脚、分栏格式、纸张大小及方向、页边距、不同节间采用不同的页码序号&#xff0c;常用的功能主要是把word下一次的由原来的“竖版”&#xff0c;变…

pygame游戏编程库:初始化和显示(01/8)

一、说明 pygame是一个Python库&#xff0c;用于编写2D游戏和多媒体应用程序。它提供了一整套工具&#xff0c;可以帮助开发者创建图像、声音、动画等内容&#xff0c;并与用户进行交互。pygame还可以用于创建交互式教育软件、演示文稿、音乐应用程序等。它基于SDL库&#xff0…

线程锁、进程锁、分布式锁_Linux网络编程

线程锁 1、互斥锁&#xff1a;互斥锁首先是一个睡眠锁&#xff0c;如下图当线程C没有获取到资源时&#xff0c;线程锁会结束线程B切换到线程C。 2、自旋锁&#xff1a;而自旋锁在未获取到资源时线程C循环等待&#xff0c;尝试获取锁&#xff0c;一直占用核心。 3、读写锁:若一…

css基础之实现轮播图

原理介绍 图片轮播的原理是通过控制显示和隐藏不同的图片来实现图像的切换&#xff0c;从而创建连续播放的效果。用到的知识点有定位和定时器。 实现步骤&#xff1a; HTML 结构&#xff1a; 首先&#xff0c;需要在HTML中创建一个包含轮播图片的容器&#xff0c;通常使用 &l…

采用springboot、avue框架开发的:大型医院绩效考核系统成品源码

医院绩效考核系统全套源码&#xff08;演示自主版权医院应用案例&#xff09; 医院绩效考核系统&#xff0c;建立以医院发展目标为导向&#xff0c;以医务人员劳动价值、工作量为评价基础&#xff0c;统筹效率、质量、成本的绩效管理和绩效工资分配体系。系统支持RBRVS&#xf…

0003Java安卓程序设计-springboot基于Android的学习生活交流APP

文章目录 **摘** **要**目 录系统设计开发环境 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 摘 要 网络的广泛应用给生活带来了十分的便利。所以把学习生活交流管理与现在网络相结合&#xff0c;利用java技术建设学习生活交流APP&…

python机器学习——实现Kmeans算法

K-means算法 关于K-means算法&#xff0c;它是一种无监督学习算法&#xff0c;用于将数据集分成预定数量的簇&#xff08;clusters&#xff09;。 K-means算法比较适合用来做聚类分析&#xff0c;而不是用来预测&#xff0c;换句话来说&#xff0c;K-means算法不擅长预测 K-…

基于SSM的搬家预约系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

数据结构之堆的实现(图解➕源代码)

一、堆的定义 首先明确堆是一种特殊的完全二叉树&#xff0c;分为大根堆和小根堆&#xff0c;接下来我们就分别介绍一下这两种不同的堆。 1.1 大根堆&#xff08;简称&#xff1a;大堆&#xff09; 在大堆里面&#xff1a;父节点的值 ≥ 孩子节点的值 我们的兄弟节点没有限制&…

“利用Lazada API揭秘电商数据:一键获取海量商品评论列表!“

要使用Lazada API获取Lazada商品评论列表&#xff0c;您需要先注册Lazada开发者账号并获取授权码和密钥。然后&#xff0c;通过调用Lazada API的item_comments接口&#xff0c;传入商品ID和国家域名后缀&#xff0c;即可获取到商品的评论列表。 以下是使用Lazada API获取Lazad…

4+1视图的理解和使用

软件架构 原文&#xff1a; Architectural Blueprints—The “41” View Model of Software Architecture 老外的原文还是很值得一看的&#xff0c;互联网上的很多文章理解得都比较粗浅 什么是软件架构&#xff1f;面试的时候很多面试官可能会问你最近在做的项目的架构。其实这…

uniapp原生插件之安卓TCP原生插件

插件介绍 安卓TCP插件支持自定义心跳数据&#xff0c;自定义心跳时间&#xff0c;断开连接时返回自定义数据等 插件地址 安卓TCP原生插件 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档 uniapp 安卓TCP原生插件使用文档 用法 在需要使用插件…

Nginx反向代理(入门)

前言 反向代理 --> 服务器 Nginx反向代理是一种服务器架构模式&#xff0c;通过将客户端的请求转发给后端服务器来分担服务器的负载压力&#xff0c;同时提高了系统的可用性和灵活性。它是一种常用的应用程序负载均衡技术&#xff0c;通常被用来处理大量同时连接的Web请求…

【GEE】2、探索数据集

1简介 在本单元中&#xff0c;我们将讨论以下概念&#xff1a; Google 地球引擎中可用的潜在数据来源。 通过生态示例显示的数据集采样用例。 如何使用 Google 地球引擎访问重要的元数据。 2背景 要将遥感集成到您的研究和分析中&#xff0c;学习如何解析 Google 地球引擎上…

【Linux编译器】:gcc/g++的使用

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux编译器gcc/g的使用&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精…

“01”滴答“摩尔斯电码”加密解密单个字符

“01”替换滴嗒“.-”“摩尔斯电码”字符&#xff0c;加密解密键盘输入的单个字符。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&a…

Windows 时间服务配置和配置工具

文章目录 Windows 时间服务保留Portw32tm 命令配置 Windows 时间服务配置客户端使用两个时间服务器配置客户端自动从域源同步时间检查客户端时间配置使用本地组策略编辑器配置Windows 时间注册表参考推荐阅读 Windows 时间服务 (W32Time) 为 Active Directory 域服务 (AD DS) 管…