一、学习内容:3.2.1结构类型、3.2.2结构与函数、3.2.3 结构中的结构
1.观看视频
2.代码列表
3.手写笔记
4.遇到的问题
问题:%d 与 %i 的区别
解决:(原文链接:https://blog.csdn.net/a982644903/java/article/details/100183530)
在 printf 格式串中使用时,没有区别。在 scanf 格式串中使用时,有区别:在scanf格式中,%d 只与十进制形式的整数相匹配;而%i 则可以匹配八进制、十进制、十六进制表示的整数。例如: 如果输入的数字有前缀 0(018、025),%i将会把它当作八进制数来处理,如果有前缀0x (0x54),它将以十六进制来处理。
问题:数组与结构的区别
1、结构的内部成员类型可以不一样,而数组是一组类型相同的数据的集合;
2、访问成员的方式不一样,数组用[]运算符,结构用.运算符;
3、运算方式中也有区别,结构可以直接赋值,而数组不行;
4、指针方式不同:结构变量的名字并不是结构变量的地址,必须使用&运算符;
5、作为函数参数传入函数,处理方式不同。(这部分不太理解)
问题: f 什么意思
-
都是转义字符,空格就是单纯的空格,输入时可以输入空格
-
的意思是 :水平制表符。将当前位置移到下一个tab位置。
-
的意思是: 回车。将当前位置移到本行的开头。
-
的意思是:回车换行。将当前位置移到下一行的开头。
-
f的意思是:换页。将当前位置移到下一页的开头。
解决:scanf("%d",p->age);这个是错误的,因为scanf输入时,要将值放到地址里,所以要加上&,&表示取址。
解决:选项d中的“std.name"是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员“name”.选项c先用指针变量引用结构型的成员gender,然后取它的地址,也是正确的,
问题:%c与%s的区别
解决:%c是单个字符,也就是用 ' ' 的。%s是字符串,用 “ ” 的。%c格式对应的是单个字符,%s格式对应的是字符串。