代码看似正确,但输不出结果,原因是在此处犯了一个非常简单的错误。
如何查错:debug 错因:倒数第三行,字符串输出时错误; 因为字符串在C语言中是以数组的形式进行存储的,而数组又是一段连续的内存空间。在进行输出时,只需向编译器传入字符串首地址即可输出。
而倒数第三行 person.name[20]是将字符串最后一个字母(即第21个元素)进行输出,与%s不符,所以导致编译错误。
关于字符串的小知识点
C语言中没有字符串类型的数据,所以只能通过数组的形式进行存放。字符数组的输入: char c[20] ; scanf("%s",c);//此处不需要加&,因C语言数组名表示该数组第一个元素的首地址 字符数组的输出: printf("%s",c);