C语言中 char a[4]; a[4]={'a','b','c','d'};这样对么? a[4]='abcd';这样对么?

如题所述

声明并初始化的写法:
char a[4]={'a','b','c','d'}; // 语法正确,意思是 a[0]='a';a[1]='b';a[2]='c';a[3]='d'
char a[4]="abcd"; // 语法正确
缺点是没有存放字符串结束符号,改为 char a[5] 较好。
char a[5]={'a','b','c','d'};
char a[5]="abcd";
=======================
char a[4]; -- 声明
a[4]={'a','b','c','d'}; -- 语句 错,(1)下标超界, (2)不能用花括号
=======================
char a[5]; -- 声明
a[4]=('a','b','c','d'); -- 语句 语法正确。a[4] 是数组元素,小括号里的叫逗号表达式,实际执行 a[4]='d'.
=======================
char a[4]='abcd'; // 声明并初始化, 语法 上 初始化 错。要用双引号。
=======================
char a[5];
a[4]='abcd'; 语句 可以。实际执行 a[4]='d';
=========================
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-19
char a[4]={'a','b','c','d'}; 是对的。
char a[4]='abcd'; 是错的。
char a[4]是声明一个数组,有四个元素;而a[4]是指这个数组的第四个元素。本回答被网友采纳
第2个回答  2013-06-15
1. char a[4]; a[4]={'a','b','c','d'};
这样写不符语法,要这样:正确: char a[4]={'a','b','c','d'};
2. a[4]='abcd';
这样也不对,要用双引号, 正确: char a[ ]="abcd";
实际5个单元,多产生一个尾0, 实际相当于 char a[5]={ 'a','b','c','d',0 };
第3个回答  2013-06-15
声明里面的a[4]和其他地方的a[4]的意义是完全不同的……
因此可以char a[4]={'a','b','c','d'};或者char a[4]='abcd';,但是char a[4]; a[4]={'a','b','c','d'};这样分两句写就是错误的……
第4个回答  2013-06-16
都不对。
只有初始化才能 char a[4]={ ......};
给数组赋值只能一个个输入。

...char a[4]; a[4]={'a','b','c','d'};这样对么? a[4]='abcd';这样...
声明并初始化的写法:char a[4]={'a','b','c','d'}; \/\/ 语法正确,意思是 a[0]='a';a[1]='b';a[2]='c';a[3]='d'char a[4]="abcd"; \/\/ 语法正确 缺点是没有存放字符串结束符号,改为 char a[5] 较好。char a[5]={'a','b','c','d'};char a[5]="ab...

char a[4]={"abcd};合法吗?
这种声明方式是不合法的,多了一个字符!

C语言中,字符串为什么不能直接用等于号赋值给一个变量。 例如 int...
c语言没有专门用于储存字符串的变量类型,字符串都是被储存在char类型的数组中。 可以把所有的字符串都看成是一个数组。可以这样声明 char a[4]={'b','c','d','\\0'}; 意思就是声明一个 char类型的数组,数组中元素的个数是4个,但只能存3个元素,最后一个是空字符。每个元素分别是b,c...

c语言:char a="ABCD"; 这个语句是对的还是错的?为什么
这是错的。编译就不能通过。char a中只能保存一个字符。而"ABCD"是一个字符串,它由5个字符组成(外加一个串结束符'\\0')。

c语言:char a="ABCD"; 这个语句是对的还是错的?为什么
当然是错的,根据标准C的规定,一个char类型的变量只有一个字节的大小,就是可以放一个ASCII字符。像你这样要放入多个字符 只能放入一个连续的内存空间 如:char a[]= "ABCD";char p = "ABCD";

C语言在数组后面添加结束符'\\0'的小问题~
a[4]={1,2,3,4}char a[4],也可存放4个字符,但最后一个字符得为\\0,不然不能正常输入字符串.char a[4]={'a','b','c','\\0'},当然'\\0'也可以省略,char a[4]={'a','b','c'}但不能是char a[4]={'a','b','c','d'},输出的时候会有乱码,因为没有结束标志....

...a[4][2]={0}; B、char a[][3]={"abc,"def"}; C、int?
选B,B选项就是一个错误的表达方式,数组的元素应该是字符,但是题目上是字符串

C语言定义字符型数组时,两种初始化方式的区别?
即能看到的个字母,外加一个字符串结束符'\\0'。这样才能正确地以%s的形式来输出这个字符串;而第二种方法则是只存储了4个字母,但是却没有字符串结束符,所以它不能以%s的形式正确输出。如果也要以%s的形式输出这个字符串,那就应该在末尾增加一个字节,用来存储一个字符串结束符'\\0'。

char a[]={a,b,c,d}; char a[]="a,b,c,d"; 有区别吗
很大区别,前者a的大小为4,分别是'a','b','c','d'后者估计你写错了吧,应该是 char a[] = "abcd"; \/\/ 这里a的大小为5个字节,除了前面4个字母外,还有一个字符串结束符 '\\0'

a,b,c,d全排列C语言,C++,排列组合
char a[4] = {'a','b','c','d'};\/\/定义字符数组 int i , j , k , l , cnt = 0;\/\/定义循环变量及当前为第cnt个组合 for(i = 0 ; i < 4 ; i++){\/\/a的所有可能位置 for(j = 0 ; j < 4 ; j++){\/\/b的所有可能位置 if(j != i){\/\/如果b的当前位置a没有占...

相似回答