C.char *a="china";等价于char *s;s="china";
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/24 16:32:53
前者为7个字符,ABCDEF空字符后者为6个字符:ABCDEF
a[0]='A'a[1]='B'a[2]='C'a[3]='\0'a[4]='e'a[5]='f'b数组只有4个字节,只覆盖了a的前四个字节
strcpy(a,b);后a[]的内容变b[]的内容:"ganme"printf("%c",a[3]);按%c格式,打印一个字符,这个字符是a[]里的下标为3的字符,C语言,下标从0起计,所以a[3]
C是正确的.charx[]="abcdefg"等价于charx[]={'a','b','c','d','e','f','g','\0'}所以x长度比y多一.再问:是隐藏了一个吗再答:可以说隐藏的吧,就
#include#includeintmain(void){char*a=newchar[10];char*b=newchar[10];char*c=NULL;c=b;strcpy(b,"afdsf"
acX是字符串系统最后添加"\o"作为结束符acY是数组没有结束符
a[5]是表示'\0',但是'\0'对应的ascll码是0,在ascll码表中前32号(0~31)ascll码代表的字符是控制字符(如换行符就在这范围内),不属于可打印字符,因此即使a[5]打印出来是
charline[]="china"定义一个字串(数组).[]表示长度不定,由后面具体的字串给定长度(系统将会自己计算).char*prt=line定义一个字串指针,在定义的时候给它赋了值,指向lin
chara[10],*p;p=a="china";是错的赋值!~原因:char*p;p="china";这里的p是在静态区分配的内存,也就是说p是指向字符常量的指针.而在p=a="china";中,"
B不正确,“a”是赋值给字符串的,不能给一个字符这么赋值,其他都可以的.
这个程序是将字符串a和字符串b交叉存入字符串c中.如a="abc",b="12345";则c="a1b2c345"再问:恩,谢谢,可以帮我在后面写注释吗?有的地方我还是看不懂呀再答:fun(char*
q可以当成是字符串,但p不是字符串作为字符串,q的长度是已知的,p的长度是未知的作为数组,q包含7个字符,p包含6个字符可以用sizeof得到两个数组的大小计算字符串长度不把'\0'计算在内所以q,p
B中的数组长度为6,而字符串长度也为6,所以没有空间给字符串后面加上'\0'结束符了,输出时会出现错误.C答案中的数组长度太短了,但对于前几个元素的输出没问题的.按照这种比较,应该选B吧
给个QQ号,我发个文档给你.有很详细的说明.如果用我的话来说,charch[]=“abc”这个就是用字条串来符值,系统会在后面自动加多一个'\0'用来表示结束.会占多一个内存空间.
#include#includevoidmain(){char*a[5]={"student","worker","cadre","soldier","peasant"};/*定义5个字符串*/cha
,dchar*p=(char*)(&a+1);把a当成一个数据结构4个字节,所以p是在'd'后面的一个字节位置再问:*p=(char*)(&a+1)char*p=(char*)(&a+1);他们分别是
正确的是CA肯定是错的,char*a;那么*a就是a[0]只能给它赋值一个字符而不是字符串,但由于a没有被赋值,所以也不能对*a赋值B也是错的,str[]只能是在声明时这么用,其它在其它地方出现[]中
chara[]="china";是定义了一个数组,[]内如有数字代表数组元素个数.char*a=NULL是定义了一个指针.具体区别你查一下数组和指针的区别就可以了,不是一句话的事,好好看吧.再问:那c
因为你传递的是指针p的形参,也就是说不是真正的p,所以在函数体内的操作,对函数外不会造成任何影响.要想有所实现,可以做如下修改:voidpoint(char**pt);main(){charb[4]=
因为char是有符号的,而b已经超出char的上限127,所以b在比较时被当作是-106.所以,a是大于b的,最后一条的(a