66问答网
所有问题
程序段char a[3],b[]="OK";a=b;printf("%s",a);输出结果是OK。是对的吗为什么?
如题所述
举报该问题
推荐答案 2018-12-08
不对。以上a=b语句是不合法的,数组a的内容未经初始化,输出的是随机内容,乱码。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/UvpUU9pUxDU9Ds92vDx.html
相似回答
14. 有下面
程序段 Char
a[3],b[ ]=
”hello”
; a=b; printf(
“
%s
”
,a
...
答:
void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上
程序
D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)
输出
*** D)
输出
8.下面
程序段
的运行结果是 C 。x=y=0;while(x<15) {y++;x+=++y;} printf("%d,%d",x,y...
帮忙算一下
char
a[3],b[]=
"
; a=b;printf(
"
%s
"
,a);
答:
会有错误
,a是
数组名,不能做为左值进行赋值。
程序段char
a[3],b[]=
"aa"
;a=b;printf(
"
%s
"
,a);
答:
a=b;这种写法是错误的。数组赋值需要用数组的拷贝函数,例如这段代码可以改为:
char a[3]
, b[] = "aa"; strcpy(a, b);printf("%s", a);
...
char
a[3], b[] =
"CHINA"
; a = b;printf (
"
%s
"
, a);
则
答:
char a[3]
; a的实际类型为const char* 所以对它赋值是错误的。
...
chara[3],b[ ]=
"china"
; a=b; printf(
"
%s
"
,a)
结果是
啥? and wh...
答:
china 输出字符串是以结束符 '\0'表示输出结束。
a=b
表示a和b指向同一个地址,也就是字符串的起始地址是一致的,所以输出的结果和输出的b是一致的, b的a后面有一个 '\0',是自动添加上去的。所以
输出结果
为 china。
有下面
程序段 char
a[3],b[ ]=
"china"
;a=b;printf(
"
%s
"
,a);
则是否编...
答:
数组之间拷贝不能直接使用
a=b,
而是可以使用字符串拷贝函数strcpy。而且数组a的长度只有3,而数组b有5个字符,还不包括结尾字符。字符串拷贝函数strcpy格式:strcpy (字符数组名1,字符数组名2) 的功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。字符数名2, 也可以是一...
大家正在搜