c++中char * 和 char 的区别

如题所述

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

1、储存内容不同

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

2、数据类型不同:

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

3、功能不同

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

扩展资料:

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

引用的规则:

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

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-29

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.

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

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

本回答被网友采纳
第2个回答  2019-09-05

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

第3个回答  2019-09-05
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
第4个回答  2019-09-05
加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输出也是可以有控制的,细节你自己去百度吧。