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'
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-18
第一个:a[0]='a' a[1]='b' a[2]='c' a[3]='d' a[4]=0
第二个:a[0]='a' a[1]=',' a[2]='b' a[3]=',' a[4]='c' a[5]=',' a[6]='d' a[7]=0
第2个回答  2013-06-18
你的char[]数组声明有问题
你可以这样
char a[]={'a','b','c','d'};
char a[]= "a,b,c,d".toCharArray();
如果说区别的话就是针对他们在内存中处理时的差异了

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

char a=;char a="a,b,c,d";有区别吗
两个都是错误的语句,前一个=后面必须要有内容,后一个是字符串了,a必须定义为数组或者指针。

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

char a[]="ABCDEF"; char a[]="{'A','B','C','D','E','F'}; a和b数...
a数组是字符串数组。长度是sizeof(a)=7\/\/包括A,B,C,D,E,F,'\\0'。这个'\\0'是在编译的时候编译器给加进去。用以限定字符串的边界。b数组是普通的字符数组。长度是sizeof(b)=6\/\/包括包括A,B,C,D,E,F。

C语言:char * =”abcdef”; char a[]=”abcdef”; 编译之前的区别
也就是修改字符串常量"abcdef"是不允许的)。用a=这样的赋值是可以的,也就是a指向了另外的地址。char a[] = "abcdef";表示的是:a是一个字符型数组,并且初始化的数值是{‘a’,'b','c','d','e','f','\\0'}共有7个元素,那么当然可以修改数组中的数值。

char a[]={'A','B','C','D','E','F'} char b[]="ABCD
数组a存储 'A' 'B' 'C' 'D' 'E' 'F'数组b存储 'A' 'B' 'C' 'D' 'E' 'F' \\0 数组a是字符数组 数组b是一个字符串 一般字符串以说以\\0结尾的 所以数组a不算是字符串 长度上也不相同 因为数组b多了个\\0

在c语言中char a[]={'a','b','c'}和char a[]="abc"有什么区别 它们各在...
char a[]={'a','b','c'} 这是一个字符数组,占3个字节。 char a[]="abc" 则不同,它是一个字符串,最后还有一个'\\0'结束符,占4个字节

cahr a[]="abcd";,,h和char b[]={'a','b','c','d'};问:数组a 和数组b...
不等价的,首先 cahr a[] 是不是你打错了 char a[] = "abcd"; 表示的是一个字符串,字符串会有一个'\\0'作为结尾,所以整体存储a的大小为5,但是如果用strlen判断a的长度不会计算末尾的'\\0',所以是4 而char b[]因为就是一个数组,所以没有'\\0',直接以字符串的处理函数去处理b,可能...

在Java中char[] a={'a','b','c','d'};与String[] a1="abcd";之间是什么...
首先 String[] a1="abcd"; 语句不正确,"abcd"是一个String类型,不能赋值给String [] 。然后 如果你想比较char [] 和String的区别:用String s = "abcd" 这种形式生成String类型,其值是放在栈内存中的 字符串池 中的,用String s = new String("abcd") 这种形式,值存放在堆内存中;...

char a[]={'h','a','b','c','d'};这个字符数组的长度为啥是5
char a[] ={'h','a','b','c','d'};\/\/这个是字符数组,只含有5个字符,数组有大小不需要结束符 char *a = "aaaaa";\/\/这个是字符串,含有6个字符,即5个a加一个结束符'\\0'C中'\\0'只是字符串的一个结束符,在处理时候将有效位按照字符数组处理 ...

相似回答