博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】字符、字符数组、char、string的区别分析
阅读量:4498 次
发布时间:2019-06-08

本文共 1288 字,大约阅读时间需要 4 分钟。

转自:

 

【规则】
1
string
为普通类型,不是数组型,只是其内容为字符串;
2
’a’
”a”
的区别:
’a’
为字符,
”a”
为字符串;单引号只能定义一个字符,双引号可以定义多个字符,即字符串。
3
、指针可以通过加减、自加减改变其值,数组不可以。
4
、以数组定义的字符串可以修改其中的字符,以指针定义的字符串不能修改其中的字符。
 
例如:
char a[]=”hello”;
cout<<a;               //输出 hello
cout<<*(a+1);      //输出 e,即数组a的第2个字符,即a[1]
cout<<a[1];          //输出 e,即数组a的第2个字符,与上同
cout<<*a++;        //错误,规则3,数组名是常量,不可以改变其值
cout<<*a;            //输出 h,即数组a的第一个字符
cout<<a;              //输出hello
*a=”L”;            //错误,规则2,*a为字符,”L”为字符串,不匹配
*a=’L’;            //正确,规则4,将数组第一个字符修改为L
cout<<a;              //输出 Lello
a[2]=’6’;          //正确,规则4,将数组第3个字符修改为’6’
cout<<a;              //输出 Le6lo
 
char *a="hello";
cout<<a;            //输出 hello
cout<<*(a+1);    //输出 e,即字符串a的第2个字符
cout<<a[1];        //输出 e,即字符串a的第2个字符,这里也可以视为数组a
cout<<*a++;      //输出 h,,规则3,即先计算*a,再使a=a+1
cout<<*a;          //输出 e,因上一行中a已经自加1
cout<<a;            //输出 ello,因为指针a已经发生变化,指向了下一个地址,即指向以e开头的字符串
*a=’L’;         //错误,规则4,不能修改指针定义的字符串的字符。
                           //【注意】此处编译可通过,运行时会出错,提示“不能写入”
a[2]=’6’;      //错误,规则4,不能修改指针定义的字符串的字符。

 

string型(需要string头文件)
char型(不需要string头文件)
 
 
char a=’m’;
正确
 
 
char a=”m”;
错误
 
 
char *a=”m”;
正确
 
 
char a[]=”m”;
正确
string a=”hello”;
正确
char a=”hello”;
错误
string *a=”hello”;
错误
char *a=”hello”;
正确
string a[]=”hello”;
错误
char a[]=”hello”;
正确
string *p=a;
错误
char *p=a;
正确
string *p=&a;
正确
char *p=&a;
错误
cout<<a;
a的值
cout<<a;
a的值
cout<<*a;
错误
cout<<*a;
a的首字符
cout<<&a;
a的地址
cout<<&a;
a的地址
 

转载于:https://www.cnblogs.com/fzzl/archive/2011/08/24/2151458.html

你可能感兴趣的文章
python 爬虫实战4 爬取淘宝MM照片
查看>>
[模拟]验证数独
查看>>
JS小记
查看>>
高德地图 API 显示跑步路线
查看>>
PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
查看>>
Sql Sever语句 (续2)
查看>>
并不对劲的bzoj5415:loj2718:uoj393:p4768:[NOI2018]归程
查看>>
笔记22 基础知识
查看>>
Game02 最新版本2.0.0
查看>>
std::set 中内部元素有序条件删除的理解
查看>>
初步认识Less
查看>>
matlab find函数用法
查看>>
Django 用户登陆访问限制 @login_required
查看>>
给没有id主键的表添加id,并设置为not null 然后填充自增id
查看>>
python之函数用法file()
查看>>
order by
查看>>
Web应用程序开发知识点回顾
查看>>
NetMQ介绍
查看>>
CentOS 6.0 系统 LAMP(Apache+MySQL+PHP) 安装步骤
查看>>
oracle 内连接 左外连接 右外连接的用法,(+)符号用法
查看>>