C语言程序设计进阶_浙江大学_中国大学MOOC(慕课)
1--如p13所示,函数传进的只是值,不是指针,所以不会改变初始main函数里的结构里的值。
2--第一种方法如p14所示,首先再在input point函数中定义一个新的同类型结构,修改成你想要的值,在函数末尾返回这个结构,最后在main函数中y=inputpoint();就可以了。
3--p16当定义一个结构变量指针指向一个结构变量时,p->month=12,与(*p).month=12相同。
4--p17就为传一个结构变量地址进函数而非只是传值,返回结构变量是一种套路,可用于后续其他操作。例如下图在main函数里output();里中可以直接用getstruct返回的值,因为返回值是指针类型,所以可以直接在前面加*表示结构变量的值。
-------------------------
然后就是结构中的结构。
因为之前讲过结构成员可以是任意类型的,例如int,double,自然也可以是数组和结构。
p19--结构中的数组
每一个数组元素都有一整套结构的值。
p21-结构中的结构不难理解,只有一个时是today.day,那么结构中的结构就是thisyear.today.day。如果有指针p指向thisyear就是*p.today.day或者p->thisyear.day。(符号点的优先级大于*所以*p不用加括号)。
最后就是p22结构中的结构的数组,并没有超范围,只是有点复杂。