一、字符串指针:

char* ch="hello";

这里的"hello"是字符串常量,是不可以改变的,即通过ch[0]="s"会编译出错。如果不同的变量指向的是相同的字符串,则这几个变量的地址是一样的。

ch保存的是“hello"这个字符串常量的首地址。

二、字符串数组:

字符串数组也就是所谓的c风格字符串,因为在c中,字符串是以字符数组的形式保存的。

char ch[]="hello";

字符串数组的特点是以”\0”结尾,因此上述的ch数组长度实际上是6,但是字符串的长度仍为5。

字符串数组内元素是可以改变的。

memset(ch,0,sizeof(ch));

另:

strlen()//求字符串的长度,遇到'\0'停止,因此是不包含'\0'空字符结尾的。

sizeof()//求内存分配的字节数。

因此char ch[]='hello':

strlen(ch)==5;//但是有6个空间被占用了,只有四个没有被用。

sizeof(ch)==10;//因为一个字符只占一个字节,共分配了10个内存区。

https://blog.csdn.net/21aspnet/article/details/1539951

二者之间的转化:

char* str=new char[5];

此时str是这个数组的首元素的地址。

关于c++中char*、char ch[]和string区别的更多相关文章

  1. 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换 [转]

    本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下. #ifndef USE_H_ #define USE_H_ # ...

  2. 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换

    本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下-复制代码 代码如下:    #ifndef USE_H_     ...

  3. c#中 uint--byte[]--char[]--string相互转换汇总

    原文:c#中 uint--byte[]--char[]--string相互转换汇总 在在做一些互操作的时候往往需要一些类型的相互转换,比如用c#访问win32api的时候往往需要向api中传入DWOR ...

  4. MFC/C++/C中字符类型CString, int, string, char*之间的转换

    1 CString,int,string,char*之间的转换 string 转 CString CString.format("%s", string.c_str()); cha ...

  5. 探究 C# 中的 char 、 string(一)

    目录 探究 C# 中的 char . string(一) 1. System.Char 字符 2. 字符处理 3. 全球化 4. System.String 字符串 4.1 字符串搜索 4.2 字符串 ...

  6. C#中数据类型char*,const char*和string的三者转换

    C#中数据类型char*,const char*和string的三者转换: . const char* 和string 转换 () const char*转换为 string,直接赋值即可. EX: ...

  7. [转] java中int,char,string三种类型的相互转换

    原文地址:http://blog.csdn.net/lisa0220/article/details/6649707 如何将字串 String 转换成整数 int? int i = Integer.v ...

  8. C#中int,string,char[],char的转换(待续)

    //char[]转string string mm = "woshicainiao"; char[] ss = mm.ToCharArray(); string AA = new ...

  9. java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

随机推荐

  1. Android异步处理三:Handler+Looper+MessageQueue深入详解

    在<Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面>中,我们讲到使用Thread+Handler的方式来实现界面的更新,其实是在非UI线程发送消息到U ...

  2. Composer的Autoload源码实现2——注册与运行

    前言 上一篇 文章我们讲到了 Composer 自动加载功能的启动与初始化,经过启动与初始化,自动加载核心类对象已经获得了顶级命名空间与相应目录的映射,换句话说,如果有命名空间 'App\Consol ...

  3. 驱动程序分层分离概念_总线驱动设备模型_P

    分层概念: 驱动程序向上注册的原理: 比如:输入子程序一个input.c作为一层,下层为Dev.c和Dir.c,分别编写Dev.c和Dir.c向上Input.c注册:如图所示 分离概念: 分离概念主要 ...

  4. task19-21

    [说明]理想是丰满的,现实很骨感,昨天还说今天有望干掉5个小任务,看来是没可能了,兜兜转转地做了一天也才完成下面的这些 一:今日完成 19.学习Spring,配置Spring和Junit 1)先安装一 ...

  5. 下周要搞大事情(ASP.NET Core & WebForms)!

    下周要搞大事情(ASP.NET Core & WebForms)!

  6. EasyDSS流媒体服务器软件对数据库Sqlite3和MySQL的同时支持说明

    EasyDSS流媒体音视频直播与点播服务器软件,是一套提供一站式的转码.点播.直播.检索.回放.录像下载服务的高性能RTMP/HLS/HTTP-FLV流媒体服务,极大地简化了流媒体相关业务的开发和集成 ...

  7. 【HTML5开发系列】meta元素详解

    meta元素可以用来定义文档的各种元数据.他有很多种用法,一个HTML文档可以包含多个meta元素. meta元素在HTML5中的变化 charset属性是HTML5中新增的.在HTML4中,http ...

  8. 使用asn1tools进行asn1编解码

    最近在做3GPP的编解码,发现有两个第三方库比较好用.一个是ASN1C(c语言编译环境),一个是python第三方库asn1tools.这里介绍下asn1tools的使用方法: 1 第一步:生成asn ...

  9. emmet缩写格式

    2016年5月30日 10:10 标准网页<!DOCTYPE html> <html lang="zh-CN"> <head> <meta ...

  10. 创建第一个SpringBoot的demo程序

    在这里,我只介绍手动创建的其中一种方式. 默认,你已经安装了IntelliJ IDEA和JDK1.8,如果没有,请先安装.   第一步:选择新建一个项目 File-->New-->Proj ...