char *a=china;d等价于char*a;*a=china?

来源:学生作业帮助网 编辑:作业帮 时间:2024/06/24 23:37:02
char *a=china;d等价于char*a;*a=china?
char a[]="ABCDEF"; char a[]="{'A','B','C','D','E','F'}; a和b数

前者为7个字符,ABCDEF空字符后者为6个字符:ABCDEF

有数组char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'

C是正确的.charx[]="abcdefg"等价于charx[]={'a','b','c','d','e','f','g','\0'}所以x长度比y多一.再问:是隐藏了一个吗再答:可以说隐藏的吧,就

void fun (char *a,char *h,char *p) { int j=0; char *q=a; whi

;q++;}字符串结尾是'\0'*q!='\0'--当字符串未到结尾时,不断循环执行--该字符的ASCII值增加1,指针值增加1,即指到下一个字符.main();funl(a);printf("%s"

如果有下列定义:char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d

acX是字符串系统最后添加"\o"作为结束符acY是数组没有结束符

char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p

strcat(p,r);后p="abcdabcde"strcpy(p+strlen(q),q);后p的第7位是'\0'p="abcabc"当然是6

char a[]={"china"}; 长度是几

a[5]是表示'\0',但是'\0'对应的ascll码是0,在ascll码表中前32号(0~31)ascll码代表的字符是控制字符(如换行符就在这范围内),不属于可打印字符,因此即使a[5]打印出来是

请解释一下C语句"char a[10],p;p=a=“china”"的含义.

chara[10],*p;p=a="china";是错的赋值!~原因:char*p;p="china";这里的p是在静态区分配的内存,也就是说p是指向字符常量的指针.而在p=a="china";中,"

有以下程序 main() { char a[ ]={'a','b','c','d','e','f','g','h','\

//答案是:d9,8//但程序有错误,正确有是:#include#includevoidmain(){chara[]={'a','b','c','d','e','f','g','h','\0'};in

mian {char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; st

q[]="abc";strlen(q)为3,p+strlen(q)指向p+3,就是p[3],strcpy(p+strlen(q),r);就是把r[]="abcde"复制到p[3]开始的以后那些单元里,

下列赋值语句,不正确的是?A.char c='a' B.char c=“a“ C.char c=97 D.int c=‘

B不正确,“a”是赋值给字符串的,不能给一个字符这么赋值,其他都可以的.

void main() { int a=1234,x; x=(char)a; printf("a[d]=%d a[x]=

这是因为:x=(char)a;将a强制转换后,符值,而a=1234,即0x04d2,高字节为04,低字节为d2,char型为1字节,所以取低字节d2,而X为int型,所以再32位系统中分给它的是4字节

C语言基本知识void main(){int a=1234,x;x=(char)a;printf(“a[d]=%d a[

a=0x04d2(16进制)x=0xd2(char的长度是2个byte)=11010010(2进制,补码表示),最高位1是符号位,表示负数x=-2^7+2^6+2^4+2^1=-46

#include main() { unsigned char a=8,c; c=a>>3; printf("%d\n"

要是你想赋值字符8的话得用‘8’(单引号)否则8就表示数字8再问:为什么呀?系统能识别吗?那为什么像这个判断语句:while(s!=0)中0代表的不是数字0,而是'\0'?再答:'\0'

main() { char a[]={'a','b','c','d'}; char *p=(char *)(&a+1);

,dchar*p=(char*)(&a+1);把a当成一个数据结构4个字节,所以p是在'd'后面的一个字节位置再问:*p=(char*)(&a+1)char*p=(char*)(&a+1);他们分别是

void fun (char *a,char *b) {a=b} void main() {char c1='A',c2

//1程序有3个错误,改正如下:#includevoidfun(char*a,char*b)//C的参数传递为值传递,改变a的值不会反馈到实参.{\x05a=b;//少分号!}voidmain(){\

c语言的选择题下面判断正确的是().A:char *a="china";等价于char *a;*a="china";B:

正确的是CA肯定是错的,char*a;那么*a就是a[0]只能给它赋值一个字符而不是字符串,但由于a没有被赋值,所以也不能对*a赋值B也是错的,str[]只能是在声明时这么用,其它在其它地方出现[]中

char a[]="china";[]这里填数字几代表什么意思,还有char a[]和char* a的区别详细点

chara[]="china";是定义了一个数组,[]内如有数字代表数组元素个数.char*a=NULL是定义了一个指针.具体区别你查一下数组和指针的区别就可以了,不是一句话的事,好好看吧.再问:那c

下面语句正确的是 A.char s[5] B.char s[5]="12345" C.chat s[56] D.char

我在想你这问题每一个选项都没分号,如过有分好的话A对了,虽然没有初始化,也不会出现错误,B的话越界了想赋值“12345”,应该定义六个元素的数组,因为字符串后面会有‘\0’,C中char写错了,D中s

192.以下程序段运行后,表达式*(p+4)的值为( ).char a[]="china"; char *p; p=a;

B再问:怎嘛理解能不能讲一下解题思路谢谢再答:p=a;是将a的首地址赋给指针p,所以p就表示数组a的首地址,也就是a[0]的地址,p+4就表示存放a[4]的地址,前面加一个*,就是取值运算,取a[4]

main() { unsigned char a,b; a=4|3; b=4&3; printf("%d %d\n",a

|&是按位运算4|3=00000100|00000011=00000111=74&3=00000100&00000011=00000000=0