钥匙宝软件怎么使用用奶宝医生这个软件

1276人阅读
C语言(8)
第一个程序:
#include &stdio.h&
#include &string.h&
typedef struct student
&&& char name[10];
}Stu_st,* Stu_
int main(void)
&&& struct student stu1={&David&,100};
&&& strcpy(stu1.name,&Jim&);//此处如果用stu2-&name=&Jim&;则会出错
&&& printf(&%s,%d\n&,stu1.name,stu1.scores);
&&& return 0;
}//运行的结果为Jim,100
第二个程序:
#include &stdio.h&
#include &string.h&
typedef struct student
&&& char *
}Stu_st,* Stu_
int main(void)
&&& struct student stu1={&David&,100};
&&& stu2-&name=&Jim&;//此处如果用strcpy(stu1.name,&Jim&);则会出错
&&& printf(&%s,%d\n&,stu1.name,stu1.scores);
&&& return 0;
}//运行的结果为Jim,100
分析:以上两个程序的差别很小,在定义结构体第一个变量时候一个用的是char name[10];另一个用char *当name为数组的时候,在给结构体分配内存的时候已经给name分配了固定大小的内存;当name为char类型的指针时,只分配了此指针的内存。所以在第一个程序之所以不能用stu2-&name=&Jim&;是因为这条语句改变了那么数组的地址,而之前name数组已经分配好了内存。第二个程序之所以不能用strcpy(stu1.name,&Jim&);是因为name没有足够的内存。由于水平有限,写的不好,希望大家能看得懂,多谢指教!
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4072次
排名:千里之外
原创:10篇
(2)(1)(1)(3)(1)(5)(2)(1)

我要回帖

更多关于 钥匙宝软件怎么使用 的文章

 

随机推荐