第四次作业

一、学习内容: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),它将以十六进制来处理。

 问题:‘ &today.month ’中先取地址还是先取成员
 解决:观看视频。先取成员,优先级高。
 问题:struct date dates[100];初始化数组时为什么多一层大括号{ } 
 解决:观看视频。因为最外层表示初始化数组,里面每一层括号表示dates[0]的值、dates[1]的值、dates[2]的值······
 问题:++和 -> 谁的优先级高
 解决:->优先级高

问题:数组与结构的区别

1、结构的内部成员类型可以不一样,而数组是一组类型相同的数据的集合;

2、访问成员的方式不一样,数组用[]运算符,结构用.运算符;

3、运算方式中也有区别,结构可以直接赋值,而数组不行;

4、指针方式不同:结构变量的名字并不是结构变量的地址,必须使用&运算符;

5、作为函数参数传入函数,处理方式不同。(这部分不太理解)

问题: f 什么意思

  1. 都是转义字符,空格就是单纯的空格,输入时可以输入空格

  2. 的意思是 :水平制表符。将当前位置移到下一个tab位置。

  3. 的意思是: 回车。将当前位置移到本行的开头。

  4. 的意思是:回车换行。将当前位置移到下一行的开头。

  5. f的意思是:换页。将当前位置移到下一页的开头。

问题:结构与函数中输入结构的部分没太懂。
 
 二、PTA作业
遇到的问题
 问题:选择第一题,++和 -> 谁的优先级高
 解决:->优先级高
 
 

 解决:scanf("%d",p->age);这个是错误的,因为scanf输入时,要将值放到地址里,所以要加上&,&表示取址。

解决:选项d中的“std.name"是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员“name”.选项c先用指针变量引用结构型的成员gender,然后取它的地址,也是正确的,

 问题:%c与%s的区别

解决:%c是单个字符,也就是用 ' ' 的。%s是字符串,用 “ ” 的。%c格式对应的是单个字符,%s格式对应的是字符串。

 

 

原文地址:https://www.cnblogs.com/g-dragon-c/p/12588243.html