c++里char"a 0和char"a 0有什么区别

2020-11-24 19:37:55 字数 3802 阅读 4627

1楼:匿名用户

c++里面初始化一个字符必须打上单引号 也就是类似于第一个 char a='x';。第2个是不正确的。

c++里char a='0';和char a=0;有什么区别??

2楼:小傻

char a[100] = ;和char a = 区别如下:

第一个是 100个字节 全部初始化为\0 ,这个是先给出大小才初始化第二个是就一个字节 初始化为\0, 这个是赋值初始化 赋的值决定了大小

分配的内存地址空间也不一样,如下:

3楼:匿名用户

第一个是指字符a赋值字符型‘0’,第二个指字符a赋值ascii值为0的字符也就是空字符(空格)。

4楼:百度用户

c++里面初始化一个字符必须打上单引号 也就是类似于第一个 char a='x';。第2个是不正确的。

char *a和char* a有什么区别?

5楼:匿名用户

没有什么不同,都是定义一个指向char型的指针但是要注意的是如果你想在一句话里面2个指针,那么正确的做法应该是char *a,*b;而不是char* a,b;

后面那个b只是一个char型变量

所以一般提倡使用第一种,避免糊涂搞错,当然如果你仅仅在一句话里面定义一个变量或者是在定义形参的话,那么第二种看上去更直接一点

希望对你有帮助

c++ 语言中char a="a"; 和char a='a' 有什么区别

6楼:匿名用户

char a='a' 是合法的

char a="a' 是不合法的

char型不能为字符串,只能为字符

7楼:匿名用户

“a”表示字符串,字符串长度等于内容加‘\0’的长度,所以是占用两个字节内存。‘a’表示字符,占用一个字节内存。而一个字符变量长度永远为1字节,所以前者写法错误,应该写成 char *a = "a"。

8楼:匿名用户

前面是错的。“a”为const char *, “a”= ‘a'+ '\0'。

char **str和char *str[]有什么区别?

9楼:匿名用户

**str右边的*表示

来指向每一个字符串第一自个字符的bai地址,du左边的*表示指向第一个字符串的zhi地址。

const char **str 或 char const **str可以定义dao,const不区分前后顺序,意义都是表示str是常量(不能赋值)。

只能定义char *str[5]而不能定义char *str,因为编译时程序不能确定str数组有几维。

char *str[5]表示字符串数组,数组数量是5,既是5个string又是一个string array,每个string不限字符个数。

10楼:千锋教育

两者都代复表一个字符数组存储制

空间的首地址,bai区别在于du

char *str;

这个变量可以进zhi行指针运算,比如:daostr++;

str--;

但如果定义成:

char str;

则str++这样的语句是错误的,这个首地址不得进行赋值计算。

在不改变str指针指向地址的情况下,下面的语句是一样的结果。

printf("%s",str+2);

c++中 char *a=0 这样的表达,对吗?

11楼:匿名用户

char *a=0; 可以

如果赋予 非 0 值

则要:int *p= (int *)10;

加上强制转换,将10当成地址, 不然编译器会报错!

12楼:xz宏定义

没错先看下这个

char a=0。也就是说a等于0这个字符(‘0’)。而零的ascii码值为48。那么当把a当成整型运算的时候,a取值48

然后 char *a=0,只是让指针指向一块字符型数据的区域,而这个区域存的值是0

13楼:轩烨

对,这相当于指针指向一片不可访问的内存,与char*p=null意思相同

14楼:匿名用户

对和char *a=null是一样的

char a[100] = {'\0'};和char a[] = {'\0'};有什么区别 5

15楼:小傻

char a[100] = ;和char a = 区别如下:

第一个是 100个字节 全部初始化为\0 ,这个是先给出大小才初始化第二个是就一个字节 初始化为\0, 这个是赋值初始化 赋的值决定了大小

分配的内存地址空间也不一样,如下:

16楼:沧海雄风

第一个是 100个字节 全部初始化为\0 这个是先给出大小才初始化

第二个是就一个字节 初始化为\0 这个是赋值初始化 赋的值决定了大小

17楼:匿名用户

char a[100] = ;a分配了100个字节的空间,但只有一个\0

和char a = ;a分配了1个字节内存空间,装着\0

c++ char * p = '\0' 和 char * p = "" 和 a[1]=""的区别?

18楼:

char * p = '\0'和char *p=null等价,是指针的一种安全状态;这时p值虽然是0,但进行写和读操作都是非法的,系统不会认可,从而保证了安全。

char * p = "",由编译器创建一个空字符串常量并存放在某个地方,并把这个地方的地址赋给p。实际上这时给p的指向目标分配了1个字节,存入了一个'\0'。这种声明毫无意义,因为""是常量,只能读取不能写入,白白地浪费了一个字节。

a[1]="",编译器械创建一个空字符串,用它来初始化数组a。中的值可以是任意合法数字,所以a的大小是由中的数值决定的;a被分配了地址,给所有单元都存入了'\0'。

19楼:匿名用户

char *p = 0; <=> char *p = 0; <=> char *p = null; <=> char *p = nullptr;

意思是使p指向空地址

char *p = "";

意思是使p指向字

符串""的首地址

第三个应该是char *p[n]; p[1] = ""; 字符串字面值的“值”就是地址。

定义一个char类型的初值需要加单引号吗,char a = '0' ;和char a = 0;都是正确的吗

20楼:水上漂汤

两种都可以

char a = '0'; //将字符常量'0'赋值给char型变量a

char a = 0; //将整型常量0赋值给char型变量,这里0作为ascii码转化为对应的字符再赋值给a(我不知道0对应哪个字符,但是肯定不是'0')

21楼:匿名用户

从语法上说都正确

char a='0';赋值给变量a的是数字0的ascii码48

而char a=0;和char a='\0';是一样的,都是将0赋值给变量a

22楼:匿名用户

给char类型赋初值需要加入单引号

0X0和0X00的区别是什么,0x00和\0有什么区别

1楼 匿名用户 0x0 和0x00也啥太大的不同 都是报错信息的一部分 并不完整 所差的也就位数而已 没多少实际意义的 如果你想更进一步了解 请提供完整的报错信息 2楼 魔神哥 0x0和0x00的区别在于在存储空间上0x0占的只是4位而0x00占的是8位,如果你做的是底层驱动led灯阵开发的话,会发...

0x00和0有什么区别,0X0 和0X00的区别是什么

1楼 匿名用户 表示一个意思 字符 0 也可以直接用asc码0表示 0不管是几进制,都是0 2楼 百度用户 0 比如,下面这个例子 char a1 1 char a2 1 前者a1 0 a 能编译通过 后者编译通不过,因为a2是一个元素的数组,而 a 有两个元素,分别是 a 和 0 补充 aa 这是...

在C++中a!0是什么意思啊,namber!0有是什么意思

1楼 匿名用户 条件判断, 不等于 的意思 2楼 匿名用户 number 0 就是变量number不为0的意思,一般用在if ,或者while for语句中,作为条件判断用哦 3楼 匿名用户 这个是逻辑判断, 是不等于 4楼 ! 是不等于,a! 0就是变量a! 0,可以用作判断 namber也是变量...