c++中char * 和 char 的区别

 我来答
幻想家爱休闲
高能答主

2019-08-17 · 分享休闲中的点点滴滴!
幻想家爱休闲
采纳数:1082 获赞数:266362

向TA提问 私信TA
展开全部

c++中char * 和 char 的区别如下:

1、储存内容不同

在C语言中,char *是定义一个字符串,存储的是一段如“abcd”的数据,而且最后还有一个结束符'\0';char 是定义一个字符,存储一个字符,占一个字节。

2、数据类型不同:

char * 是指针类型,是一个用来保存一个内存地址的计算机语言中的变量。char 是字符类型,用来存储字符值。

3、功能不同

C++中使用char*定义字符串,同样不能改变字符串内的字符的内容,但却可以把另外一个字符串付给它;C++中char的定义字符串,同样不能改变字符串内的字符,但却可以把另外一个字符串付给它。

扩展资料:

引用是 C++ 中的概念,初学者容易把引用和指针混淆一起。

引用的规则:

1、引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。

2、不能有 NULL 引用,引用必须与合法的存储单元关联(指针则可以是 NULL)。

3、一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

C++ 语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。

参考资料来源:百度百科-指针

参考资料来源:百度百科-字符变量

八哥说科技
高粉答主

2019-07-29 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:113 获赞数:78618

向TA提问 私信TA
展开全部

1、数据类型不同:

char * 是指针类型,是一个用来保存一个内存地址的计算机语言中的变量。

char 是字符类型,用来存储字符值。字符变量是存放字符常量的变量,其取值是字符常量,即单个字符。字符变量的类型说明符是char。

2、存储单元数量不同:

char * 指针类型,是一个无符号整数,它是一个以当前系统寻址范围为取值范围的整数。32位系统下寻址能力(地址空间)是4G Bytes(0~2^32-1)二进制表示长度为32bits(也就是4Bytes), unsigned int类型也正好如此取值。

char 类型在计算机存储单元中只占1个字节,也就是8位。它包括中文字符、英文字符、数字字符和其他ASCⅡ字符,其长度(即字符个数)范围是0-255个字符,即0x00至0xFF。

扩展资料:

C++编程中指针与引用的区别:

1、引用总是指向一个对象,没有所谓的 null reference。所有当有可能指向一个对象也有可能不指向对象则必须使用指针。

由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值。String & rs = string1;由于没有所谓的 null reference 所以在使用前不需要进行测试其是否有值,而使用指针则需要测试其的有效性.

2、指针可以被重新赋值而reference则总是指向最初或地的对象.

3、必须使用reference的场合. Operator[] 操作符 由于该操作符很特别地必须返回 [能够被当做assignment 赋值对象] 的东西,所以需要给他返回一个 reference.

参考资料来源:百度百科-指针类型

参考资料来源:百度百科-字符变量

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2019-09-05 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3718万
展开全部

char *都一样, 说明定义指向字符类型数据的指针, const修饰表明这个指向的数据类型(char型)的数据是只读的,或者说是常量不允许修改,仅此区别,如果在程序中用p去修改了数据则会在编译时报错

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vnclight
2019-09-05 · TA获得超过952个赞
知道小有建树答主
回答量:1169
采纳率:67%
帮助的人:64.5万
展开全部
char 和 const char 都是 char 型变量。
理论上来说,当变量未初始化,或未赋值时,你可以赋任意 值 给 它们。
一旦 赋值 后,const char 型变量的值 就 不允许 更改,不允许再赋新值。
而 char 型变量,你可以 随时 更新,愿赋新值 就可以赋新值。

但是,实际上,const char 型,只有在 初始化 时 才允许 赋 值。赋 后,不允许 再赋 值。
例如: const char cc = 'a';
所以 一旦 语句 中 出现 cc = 'b'; 甚至 不改变值 地 写 一句 cc = 'a'; 都算 语法错误。

char 型,无所谓,例如:
char c;
int i;
for (i='a';i<='z';i++) { c = i; printf("%c ",c);}
输出: a b c d e f g h i j k l m n o p q r s t u v w x y z
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaboyzyq
2019-09-05 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3248万
展开全部
加const表示定义的是符号常量,它与不加const定义变量是有区别的:
加const定义的符号常量,一般在定义的同时赋值,以后它的值不可改变。
不加const定义的变量,随时可以修改它的值。

我用标准c回答你的问题,
const char *p[3]={"abc","bca","sad"};//定义三个指针常量,分别指向三个字符串的首地址
printf("%c\n",*(p[0]+1));//这样可以得到第一个字符串的第二个字符
printf("%s\n",p[0]);//这样可以打印第一个字符串
因为c++的cout输出也是可以有控制的,细节你自己去百度吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式