【一天一个C++小知识】014:C++中string与char*的区别
1.定义:
string是STL当中的一个容器,对其进行了封装,所以操作起来非常方便。
char *是一个指针,可以指向一个字符串数组,至于这个数组可以在栈上分配,也可以在堆上分配,堆得话需要手动释放了。
2.区别
string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。
char *的内存管理由用户自己处理,很容易出现内存不足的问题。
char *s="string"的内容是不可以改的;char s[10]="string"的内容是可以改的。
当我们定义了一个string,就不能用scanf("%s",s)和printf("%s",s)输入输出。主要是因为%s要求后面是对象的首地址。
3. 转化
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{string s="xiaoming";const char *a=s.c_str();//去掉const会显示编译错误const char *b=s.data();printf("a:[%s],b:[%s]\n",a,b);
}
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{char *a="xiaoming";string s;s=a;printf("%s\n",s.c_str());
}
欢迎扫描二维码关注微信公众号 深度学习与数学 [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
【一天一个C++小知识】014:C++中string与char*的区别相关推荐
- 【每天一个Python小知识】NumPy中的np.where
函数形式:a = np.where(b) 功能:找到满足条件的b的索引a. 参数:b是某种条件,要求是np类型. 返回值:a是返回的索引,也是np类型. 举个套娃的例子来更好的了解这个函数: impo ...
- 【每天一个Python小知识】NumPy中的np.any
import numpy as np np.any(np.array) 对矩阵中所有元素做或运算,存在True则返回True 一般在条件判等时使用,如: import numpy as np a = ...
- 安卓期末作品小项目_每日一个财务小知识——洞悉洞晰财务报告第一季
财务报告 洞悉洞晰财务报告 目录 01/账务报告概述 02/资产负债表 03/利润表 04/现金流量表 05/所有者权益变动表 06/附注 一.财务报告概述 (一)财务报告及其目标 财务报告是指企业对 ...
- 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...
- 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...
- 奶粉中的php是什么,奶粉小知识:奶粉中的OPO起到什么作用?
原标题:奶粉小知识:奶粉中的OPO起到什么作用? 现在不少奶粉都打着OPO的名号作为宣传卖点,那么,OPO在奶粉中到底到了什么作用,却仍然有着大部分人不太了解. 实际上,OPO,又称OPO结构脂,是一 ...
- Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...
- 【每天一个Python小知识】用yaml的yaml.safe_load()方法读取配置文件中的参数
文章目录 ymal安装 配置文件格式 配置文件读取 yaml是专门用来写配置文件的,因其简洁高效而被大众喜爱. ymal安装 python3安装: pip install pyyaml#python2 ...
- list赋值给另一个list_Python小知识: List的赋值方法,不能直接等于
Python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不 ...
- 每天一个shell小知识(shell变量)
目录 shell变量 自定义变量: 变量定义/查看 变量赋值的特殊操作: 双引号 单引号 反撇号 设置变量的作用范围: 特殊变量---环境变量: 位置变量: 预定义变量: shell变量 在各种she ...
最新文章
- leetcode 507. 完美数(Java版)
- 树莓派安装python3.5_树莓派 | 04 安装基于python3.5的tensorflow,解决python版本不匹配问题...
- C语言精度控制整形,C语言 凑算式 控制精度问题
- 单链表插入元素 注释 c语言,数据结构之无头单链表的相关练习题——C语言实现(详细注释)...
- 关于面试时碰到的几个多线程手撕代码题
- html select 事件 jquery,通过jquery触发select自身的change事件
- Pytorch专题实战——交叉熵损失函数(CrossEntropyLoss )
- Android项目总结(3)-登录页图片循环过渡播放动画效果
- 神策分析 1.13 版本用户分群全新升级,为企业打磨精细化运营基石
- WhatsApp选择了便利而不是隐私,这是解决问题的方法
- AVI文件在opencore框架下的解析
- 【大牛感悟】淘宝陈吉平职业生涯--敬不甘平凡的自己
- 家庭版Windows10/Windows11不支持远程桌面
- ZOJ3549 Little Keng(快速幂)
- 想知道未来孩子长相?Python人脸融合告诉你
- 教师公开课卡通动态通用PPT模板
- 【五一创作】(2017NHOI-GOC测评)第1题 鱼形(fish)
- 利用Python对淘宝用户行为进行分析
- Android 支付宝API使用流程
- 经济寒冬背景下,企业如何利用OA系统保暖
热门文章
- 内置函数dict()字典
- Python2.X和Python3.X文件对话框、下拉列表的不同
- css 里层元素撑不开外层元素
- 微信小程序——风水罗盘
- 如何解决ADB server didn't ACK
- 浅谈 HTTPS 和 SSL -TLS 协议的背景与基础
- 28. 字符串的排列(C++版本)
- 09. Never call virtual funcitons during construction or destruction
- html5提交按钮如何改成图片,HTML5 订阅按钮变成填充表单动效
- php怎么处理一对多,php - 如何处理内部连接以及与OOP的一对多关系? - SO中文参考 - www.soinside.com...