char ch=‘ABCD’为什么不对

作者&投稿:禹天 (若有异议请与网页底部的电邮联系)
c语言:char a="ABCD"; 这个语句是对的还是错的?为什么~

这是错的。编译就不能通过。
char a中只能保存一个字符。而"ABCD"是一个字符串,它由5个字符组成(外加一个串结束符'\0')。

,要用char *ch = "abc";

char ch 只能容纳1个字符。
单引号括起的叫字符常量,只能容纳1字节。
'A' ,'B','C','D','\0' 是合法字符常量。'ABCD' 不是合法字符常量。

char ch='D'; // 正确,字符常量
char ch[]="ABCD"; //正确, 字符数组,字符串。
char ch[5]="ABCD"; //正确, 字符数组,字符串。
char ch[4]={'A','B','C','D'} ; //正确, 字符数组,4个字符常量

回到字符类型char的定义,用单引号(英文格式下)括起来的Unicode表中的一个字符,重点在于一个字符。ABCD表示4个字符,不符合定义,编译无法通过。

应该是双引号吧

一个char是放不下这么多东西的


满洲里市15576202277: char ch='ABCD'为什么不对 -
招昭儿肤:[答案] char ch 只能容纳1个字符. 单引号括起的叫字符常量,只能容纳1字节. 'A' ,'B','C','D','\0' 是合法字符常量.'ABCD' 不是合法字符常量. char ch='D'; // 正确,字符常量 char ch[]="ABCD"; //正确, 字符数组,字符串. char ch[5]="ABCD"; ...

满洲里市15576202277: C语言中怎么初始化字符变量? -
招昭儿肤: C语言中,初始化操作就是在定义变量的时候,对变量进行赋值,即称为变量的初始化.对于字符变量也是一样的. 举例如下: char ch='a'; // 定义一个字符变量,变量名为ch,并进行初始化 char str[]="abcd"; // 定义一个字符数组,数组名为str,并进行初始化

满洲里市15576202277: char a[]="abcd" -
招昭儿肤: (本来这个问题并不复杂,但是由于LS个别概念有些问题,所以还是深入回答一下算了- -.) 关于LZ的问题:a本身的值确实只是一个const char*类型的地址.但C++中cout是被定义好的一个类的对象,它和运算符“<<”连用时< <

满洲里市15576202277: char ca[]="abcd" C语言中char不是只能表示一个字节吗 为什么可以等于四个字 -
招昭儿肤: 这声明了一个字符数组,等价于 char ca[] = { 'a', 'b', 'c', 'd' , '\0'};

满洲里市15576202277: char ch[] = {"abc\0def"}; char *p = ch; cout<<*(p+4)<<endl; 输出结果为什么是:d ? -
招昭儿肤: '\0'为字符串结束符占一个字符,ch[0]~ch[6]分别为'a','b','c','\0','d','e'.'f', *(p+4)输出的是p[4]

满洲里市15576202277: c语言中为什么char *a; -
招昭儿肤: char *a是声明了一个指向char类型的指针变量; 此时,a并没有被初始化,没有被指向任何数据; 所以此时scanf("%s", a)是错误的,a此时只是一个空指针,而且你也不能向一个指针变量中存储非地址类型之外的数据; 这就相当于: 你要帮...

满洲里市15576202277: main() {char ch[]="abcd",x[4][4];int i;
招昭儿肤: 我来解释一下,ch[]数组有5个元素(字符串会自动在结尾加'\\0'),这样对x[][]数组赋值时过程如下: 1、x[0][0]-x[0][3]=abcd,x[1][0]=\\0; 2、x[1][0]-x[1][3]=abcd,x[2][0]=\\0; 3、x[2][0]-x[2][3]=abcd,x[3][0]=\\0; 4、x[3][0]-x[3][3]=abcd,x[3][3]内存中的后一...

满洲里市15576202277: 简述char ch[]={'a','b','c'};与char ch[]=“abc”;差别. -
招昭儿肤: char ch[]={'a','b','c'}; //数组大小为3 char ch[]=“abc” //数组大小为4(多一个字符串尾的\0)

满洲里市15576202277: c语言编程将字符序列{1,2,3,4,5,6,a,b,c,d}转化为{a,b,c,d,1,2,3 -
招昭儿肤: #include <stdio.h> #include <stdlib.h>int main() {char ch[]={"123456abcd"};char temp;int i,j,k;for(i=0;i<10;i++){k=i;for(j=i;j<10;j++)if(ch[k]>ch[j])k=j;if(k!=i){temp=ch[i];ch[i]=ch[k];ch[k]=temp;}for(i=0;i<9;i++)printf("%c,",ch[i]);printf("%c\n",ch[i]);}return 0; }

满洲里市15576202277: char c=`h`,*b="abcd" -
招昭儿肤: 定义一个c字符变量并初始化为'h' 定义一个b字符串指针并初始化为“abcd"

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网