C语言求解char s[5]=""这种双引号里面啥都不写是什么意思

C语言求解char s[5]=""这种双引号里面啥都不写是什么意思,char s[5]="abcde"这是哪儿错了,我估计是出界了,不知是不是。。主要是第一个 问题,它里面啥都没写,不知是想干嘛,里面有没有一个字符'\0'??

字符数组初始
char s[]={'a','b','c','d','e'};
s数组自动初始化为带五个个元素的数组

char s[]="abcde";
s为带5个元素,共占6个字节(包括了字符结束符'\0')
char s[5]=""这种双引号里面啥都不写是初始化为空数组追问

既然是空数组,那我何不就不写呢,这样不是多此一举啊??

追答

初始化为空和不写不一样,不写,里面保存的是随机值

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-14

    char s[5]=""  初始化为空字符

    char s[5]="abcde"   s为字符数组,并不是因为出界出错,对声明的字符指针赋值可以这么写

关于C语言字符数组的赋值最后自动添加‘\\0’问题
c[5]只有5个空间无法完全容纳字符串"hello",因为这个字符串需要占用6个字符位置。所谓自动加'\\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号0,而不是运行时添加的。如果你用debug方式运行程序,调试环境自动会把你开设的char a[5];进行初始化0的...

C语言中定义一个指向字符的指针数组char *s[5], 则*s[1],s[1],*(s...
void sort(char *s[]) 这里接收到的是指针数组,即:数组中各元素 是指针地址,s是数组首地址 s[i]表示第i+1个元素 的值(地址,一个字符串的首地址,* s[i] 表示这个字符串的第一个元素,是个字符)s+i是第i+1个元素的地址,*(s+i)是地址中的数据,等同于s[i]

C语言中双引号占不占字符
C、C++、C#、Java 这些编程语言中的双引号,当包裹其它字符形成字符串时,双引号都是不占用字符的。比如 char mystr[] = "Hello" 或 std::string mystr = "Hello" 都是只包含 Hello 这几个字符。要想包含双引号,需要用 \\ 进行转义,比如 char mystr[] = "\\"Hello\\"";...

c语言char类型输入输出引号问题。
你xy是char型的,单引号'a'表示将字符a赋值给x,用双引号的话,表示的是字符串,你可以定义数组x[10],然后x=“a”,但是"a"不能赋值给单个字符x.由于你赋值是错误的,在输出的时候系统会随机的给出值,输出h和o只是偶然

C语言的问题 双引号里面变量怎么表示
*buffer, "d%", num);第一个参数是要保存转换结果的空间 第二个参数是字符串的格式 第三个参数是要格式化的变量 如 num = 5;char buffer[20]={0};sprintf( buffer, "d%", num);buffer[0]就是'5'将变量存入char数组中,然后用字符串连接符连出命令字符串 参考资料:alltoy | 三级 ...

C语言问题 char[5]=“china” 它的字符长度是5还是6?所占字节是5还是6...
你这样写,在vc6中可能没有错,但是,vc6是很不标准的。。。在vs2010中是肯定不能这么写的,因为越界了。你必须这么写 char[6] = "china"在内存中是这样存储的 c h i n a \\0 最后一位要保存\\0;它的字符长度是5,占用6个字符。

char s="abcd" 请问哪里错了。
char 是什么?是字符,字符在C语言里面,就是指单个字符,并且是‘ ’单引号括起来的,你这个“abcd"是双引号,放别的语言里面,叫字符串,C语言里面没有官方的字符串,最好叫做字符数组。所以有几种写法:char s = 'a';char *s = "abcd";char s[] = "abcd";我想你要的是后两个答案。

C语言如果要用双引号为一个char类型变量赋值。
有这么一条语句 const char *mystr="A";这条语句不需要数据类型转换,看等号的右边,是不是和你的x="A"是一样的。现在你再看我写的这条语句的等号左边,它是什么数据类型?是个指向字符串“A”的指针吧,也就是字符串的地址。那你在看x="A",此时的x得到的是什么?是不是“A”的地址。...

...串操作的是( )。 A)char s[5]={'a','b','c','d', 'e'};
C) char *s;s="ABCDEF"; 正确,定义了一个指针s,然后把s指向存储"ABCDEF"这个字符串的内存首地址。 s="ABCDEF" ; 就是在初始化s D) char s[5];scanf("%s",&s); 实际上这个也不会错,看起来&s的类型是char(*)[5],和scanf要求的char*类型不符,但实际上scanf的%s格式决定了...

c语言中,printf(“”)是什么意思?为什么括号里面什么都不加
double 科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写 g \/ G double 使用以上两种中最短的形式,大小写的使用同%e和%E c char 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符 s \/ S char * \/ wchar_t * 字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\\0...

相似回答