c语言的 有个程序看不懂 麻烦帮帮忙 谢谢了

C语言 码拜 9年前 (2016-04-03) 657次浏览
#include <stdio.h>
#include <string.h> /*用strlen函数就加上*/
#define DENSITY 62.4 /*定义常数就直接这样定义*/
int main() {
float weight, volume;
int size, letters;
char name[10];
char name2[10];
char *name_p = name;
char *name_p2 = name2;
printf(“Hi! what”s your first name?\n”);
scanf(“%s”, name);
printf(“output 1:%s, %s\n”, name, name2);
strcpy(name2, name);
printf(“output 2:%s, %s\n”, name, name2);
printf(“output 3:%d, %d\n”, sizeof(name), sizeof(name_p));
return 0;
}
问题一:输入123456789012,观察输出1和输出2,为什么会出现这样的错误输出结果?
问题二:输出3两个输出结果不同,为什么?
谢谢谢谢!
解决方案

20

    scanf("%s", name);
    printf("output 1:%s, %s\n", name, name2);

程序错误太多
第一句:name数组10个元素,输入那么长,越界了!
第二句:name2没有初始化

20

问题二:语法含义不同嘛
sizeof(name):数组有几个元素
sizeof(name_p):指针有几个字节

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c语言的 有个程序看不懂 麻烦帮帮忙 谢谢了
喜欢 (0)
[1034331897@qq.com]
分享 (0)