char *a=china;等价于char *a;*a=china;
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 23:50:08
代码不全啊再问:#includevoidfun(char*a,char*b){while(*a=='*')a++;while(*b=*a){b++;a++;}main(){char*s="****a*
a[0]='A'a[1]='B'a[2]='C'a[3]='\0'a[4]='e'a[5]='f'b数组只有4个字节,只覆盖了a的前四个字节
;q++;}字符串结尾是'\0'*q!='\0'--当字符串未到结尾时,不断循环执行--该字符的ASCII值增加1,指针值增加1,即指到下一个字符.main();funl(a);printf("%s"
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";中,"
会输出编译错误信息,字符数组的复制要用strcpy()函数,不能这样直接用赋值操作符赋值.
这个程序是将字符串a和字符串b交叉存入字符串c中.如a="abc",b="12345";则c="a1b2c345"再问:恩,谢谢,可以帮我在后面写注释吗?有的地方我还是看不懂呀再答:fun(char*
1,char*a;*a="abc"是错误的,*a是字符,不是字符串.2,另外两句完全一样.虽然编译能通过,但是你这句本身就是错误的:字符串定义应该是constchar*a="abc";因为字符串储存在
好像是二进制转换吧?第四行就是把数字进行二进制算法的转换,第五行是把这个转化后的进制返回作为函数的返回值
输出结果是a函数返回*p也就是字母d-->point(p)但是问的是*p当函数返回值之后里面所有的东西都释放了p还是指向之前的字母a如果想得到字母d有2个办法1p+=3改成*p+=32printf("
,dchar*p=(char*)(&a+1);把a当成一个数据结构4个字节,所以p是在'd'后面的一个字节位置再问:*p=(char*)(&a+1)char*p=(char*)(&a+1);他们分别是
就是把数组a[0]赋值为'0'再问:‘0’是什么意思??再答:'0'是0的ASCII码值,'0'=10进制的48补充一点,一开始说得不对。chara[50]={'0'};会将第一个元素赋值为'0',其
//1程序有3个错误,改正如下:#includevoidfun(char*a,char*b)//C的参数传递为值传递,改变a的值不会反馈到实参.{\x05a=b;//少分号!}voidmain(){\
定义char类型二维数组.如果是chara[N][M],就可以看成N个M维数组.后面大括号里面{}的每一个元素是一个M维数组.chara[][3]就是N个3维数组.N空出来了,由后面大括号里面有多少个
正确的是CA肯定是错的,char*a;那么*a就是a[0]只能给它赋值一个字符而不是字符串,但由于a没有被赋值,所以也不能对*a赋值B也是错的,str[]只能是在声明时这么用,其它在其它地方出现[]中
chara[]="china";是定义了一个数组,[]内如有数字代表数组元素个数.char*a=NULL是定义了一个指针.具体区别你查一下数组和指针的区别就可以了,不是一句话的事,好好看吧.再问:那c
因为char是有符号的,而b已经超出char的上限127,所以b在比较时被当作是-106.所以,a是大于b的,最后一条的(a
char*a[]={'a','b','c'};//a是一个数组,后面的{}是对数组的初始化队列.但这里也是不行的,因为数组的元素类型是char*,不能用char值进行初始化.char*a={'a','
B再问:怎嘛理解能不能讲一下解题思路谢谢再答:p=a;是将a的首地址赋给指针p,所以p就表示数组a的首地址,也就是a[0]的地址,p+4就表示存放a[4]的地址,前面加一个*,就是取值运算,取a[4]