99问答网
所有问题
若有以下的数组定义:char str[]="abcd";char b[]={'a','b','c','d','e'},这两个数组他长度为什么
我的理解是前者有的'\0',但后面就没有么?后面的数组就不算是字符串吗?那到底什么实话后面有'\0'
举报该问题
推荐答案 2011-12-21
用' '括起来的是单个字符,用" "括起来的是
字符串
,就算中间只有一个字符,编译系统也会把它后面加一个0,C风格的字符就是以0结尾的,0后面再有内容也是多余的。b是字符数组,不是字符串,拿它当C风格的字符串会出问题的,因为后面没有0作为字符串结束标记,如果要当成字符串来访问的话会一直往后访问,直到遇到0,这样就有可能访问到不允许访问的地址,程序会跳出一个非法访问错误。如果想拿b当C风格字符串用,请在最后加一个0。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/zBXvjBeXO.html
其他回答
第1个回答 2017-10-29
用前者定义方法后面就有\0,用后者定义方法后面就没有\0。因为前者是用字符串"abcd"初始化,它本身d后就有一个\0,而后者是用5个字符常量初始化,就是个普通字符数组。
第2个回答 2011-12-22
这个不写长度的数组,后面系统都会给加一个'\0'的
相似回答
若有以下的数组定义:char
str[]=
"
abcd
"
;char
b[]={
'a','b','c','d...
答:
用' '括起来的是单个字符,用" "括起来的是字符串,就算中间只有一个字符,编译系统也会把它后面加一个0,C风格的字符就是以0结尾的,0后面再有内容也是多余的。b是字符
数组,
不是字符串,拿它当C风格的字符串会出问题的,因为后面没有0作为字符串结束标记,如果要当成字符串来访问的话会一直往...
C语言问题
答:
你的str这个字符
数组,
你能往里面放的字符串长度(字符串长度是不算空字符的,库函数strlen求的就是字符串长度)最大只能是7,比如"gooogle",但是不能是"goooogle",这时"goooogle"占据str所有的空间,没有地方放空字符
,str
就不再被识别为一个字符串了,这样如果你后面的函数把str当成字符串来使用,...
如下
数组定义
语句"
char
s
[]=
"
abcd
"; 则下列语句执行后的输出结果是...
答:
1234 234 34 4
C语言问题
:定义char
*
str[]={
“12345”,“abcde”}
;以下
正确的叙述是...
答:
只有B是正确的,选B。A——char *
str
[]写法说明str是个
数组
,它的每个元素都是char *型指针。所以str是指针数组而非指针。C——这个表述是二维数组的解释,而str是个一维数组。D——同C,属于二维数组的表述。
...
str[ ]=
"
abcd
"; 为什么有5个
数组
元素? int *p
=&a
,
a=0;为什么不是...
答:
双引号的作用就是在最后一个元素之后加个位模式为0的元素..
char
str[] = "
abcd
";可以看成是char
str[] = {
'a','b','c','d',0};的简写 int *p = &a这个之前要先声明a 改为 int a=0, *p
= &a;
就可以了
以下
程序段的输出结果
char
str[]=
"
ABCD
",*p=str;printf("%d\n",*...
答:
首先
,str[]
有5位,str数组是是通过初始化得到长度的,所以它的长度也就是"
ABCD
"的长度。而我们知道"ABCD"的类型是const
char[
5](因为字串必定以'\0'结尾)。所以str的类型是char[5],并且里面的值分别是'A'、'B'、'C'、'D'、'\0'。显然p指向str[0],所以p+4指向str[4],也就是'\...
...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,可能...
我这有C语言的题,哪位大侠能解决一下,必有重谢!
答:
B:a的值等于10并且b的值大于等于3C:a的值不等于10或者b的值小于3D:a的值不等于10并且b的值大于等于3 A B C D 11、设
char
ch,
str[
4],*strp;,则下列赋值语句正确的是( )。本题(1分)A
:ch=
"CBA";B:str="CBA";C:strp="CBA";D:*strp="CBA"
; A B C D
12、以下程序关于sizeof()的运行...
求一个二级C题库?
答:
(16)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",&p); B)scanf("%d%d%d",
a,b
,c);C)scanf("%d",p); D) scanf("%d",a,b,c);(17)
有以下
程序 main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,...
大家正在搜
若有定义int a[2][3]
对于定义char str
求char数组长度
一个函数说明为static
c语言char什么意思
char str
设char str
char s[10]
struct c语言