有语句char *a[2]={abcd,ABCD};则以下叙述中正确的是
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/22 13:49:32
B选项中的"&"是一个字符串,不是字符,因为它是用双引号括的.C选项中的单引号之间包含了多个字符,是个多字节字符,严格意义上不算错,它会将低字节字符赋予变量a.D选项中在要把单引号字符赋予a,而单引号
'f'a[]首先是一个数组,strcpy操作改变了前4个元素,但第5,6,7元素没有被改变,所以还是'e''f'和'\0'
C是正确的.charx[]="abcdefg"等价于charx[]={'a','b','c','d','e','f','g','\0'}所以x长度比y多一.再问:是隐藏了一个吗再答:可以说隐藏的吧,就
D是错误的,因为d是常量,如果能执行d++,就改变了d是值.
;q++;}字符串结尾是'\0'*q!='\0'--当字符串未到结尾时,不断循环执行--该字符的ASCII值增加1,指针值增加1,即指到下一个字符.main();funl(a);printf("%s"
acX是字符串系统最后添加"\o"作为结束符acY是数组没有结束符
d,只有指针才能用->这个符号,此题中B就可以写成:p->no
我来给你解释下每个答案吧.A,chara='A'b='B'这个的正确形式应该是chara='A',b='B',注意,中间有个逗号,这是区别于变量a和b的,a和b不同的两个变量,所以要用逗号隔开B.fl
chara[10],*p;p=a="china";是错的赋值!~原因:char*p;p="china";这里的p是在静态区分配的内存,也就是说p是指向字符常量的指针.而在p=a="china";中,"
a[1][0]='3',a[1][2]='\0'CharacterstringsarenullterminatedinC.
B不正确,“a”是赋值给字符串的,不能给一个字符这么赋值,其他都可以的.
1,char*a;*a="abc"是错误的,*a是字符,不是字符串.2,另外两句完全一样.虽然编译能通过,但是你这句本身就是错误的:字符串定义应该是constchar*a="abc";因为字符串储存在
好像是二进制转换吧?第四行就是把数字进行二进制算法的转换,第五行是把这个转化后的进制返回作为函数的返回值
\72表示的是一个字符哦\是转义符号,这里的72是八进制的,换成十进制为58如果是\92那就是错误的,因为9已经超过8进制的取值范围.1.一般转义字符这种转义字符,虽然在形式上由两个字符组成,但只代表
,dchar*p=(char*)(&a+1);把a当成一个数据结构4个字节,所以p是在'd'后面的一个字节位置再问:*p=(char*)(&a+1)char*p=(char*)(&a+1);他们分别是
//1程序有3个错误,改正如下:#includevoidfun(char*a,char*b)//C的参数传递为值传递,改变a的值不会反馈到实参.{\x05a=b;//少分号!}voidmain(){\
我在想你这问题每一个选项都没分号,如过有分好的话A对了,虽然没有初始化,也不会出现错误,B的话越界了想赋值“12345”,应该定义六个元素的数组,因为字符串后面会有‘\0’,C中char写错了,D中s
首先说指针数组和数组指针.数组指针char(*k)[3];数组指针chars[3][10]*(p[3])p[3]存储的都是char*指针.p*是普通的char指针所以p=s[0]正确再问:我没看懂你想
c2-c1理解为:101-97,c2-'a'+'A'理解为:101-97+65所以输出为:4,E好久没用C了,不知道是否正解!
A对应的ASC码是65及对应的二进制是1000001与7进行异或运算00001111000110结果转换成10进制就是70对应的就是F