#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两个输出结果不同,为什么?
谢谢谢谢!
#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):指针有几个字节
sizeof(name):数组有几个元素
sizeof(name_p):指针有几个字节