目录
易错点整理:
1.{}初始化列表,只能再初始化时用。
2.char *s = “Hello” *s为指针,只保存了字符串常量的首元素地址,可以进行动态修改
3.
此时str[]中的有效字符分别是‘a' 'b' '\n' '\012' '\\' '\"' 共六个。这是因为c语言的“贪心算法” c语言会默认'\012‘一个八进制的数,而非遇'\0'结束。
7.4.3.3 二维数组(逆序)
整体思想与一维相似。逐次 把每一行的a[i]上的元素实现逆序。再整体打印。
7.4.3.4 二维数组(魔方阵)
算法:写一个循环,依次把数拿出来填入格子中并满足要求
通过改变N的值可以打印不同阶数的魔方阵。
7.4.4 二维字符型数组
初始化过程如图所示。
数组指针:数组的指针。
指针数组:指针的数组(一个装的全是指针的数组)。
必须传一个一维数组的数组名才行。故puts(s[0]);可以
7.4.4.1 最大值
依次两两比较 ,与前述区别在于不能整体复制,不能整体比较需要调用函数。
相关代码实现 如上图所示。
整型最大值max定义为整型,对于二维数组s来说里面有若干个元素的数组,故max理应定义为数组型。
7.4.4.2 逆序
注意strcpy()调用时实参为地址,故二维数组s 则填s[i],而t是一维数组,故只填数组名字t即可。
7.4.4.3 选择排序
7.4.4.4 二分查找
![](https://i-blog.csdnimg.cn/blog_migrate/ca51ace9df00f1c10afd101dcd41ebdf.png)
第八章 函数
把复杂的问题拆解为独立的小问题。编写程序用函数描述有两个优点:1.提高复用性 2.降低程序的耦合性
8.1定义说明
此外:无参函数是有参函数的特殊情况。
1.类型名:函数最终运行的结果是什么类型。可能有些函数最后没有什么返回的结果,可定义为void(空);函数名需满足标识符定义原则,参形是函数在调用时需要提供的线索。
2.函数名最好可以是一个动作。
这样不行,两个变量的类型必须独立给出。
调用add()结果ret会返还给调用者。调用add(),括号内填实参。实参类型与形参类型和个数都要相同。
例:实现加法
注意:
1.只要形参与实参类型匹配或能做隐式的转换为int型就可以,没有强制要求为左值
2.不同函数的同名标识符互不影响
最终返回值式不能确定的。
return语句会直接终止当前函数的执行,立即退回当前函数的调用位置。
某个函数没有返回值类型,会默认返回int。
这才是对的。
驼峰命名法:除第一个字母小写其余单词的首字母大写。
调用被调函数写在前,主调函数写在后。
8.2 找出三个数的最大值
8.3计算0~100中有多少个可以被3整除
8.3 判断闰年及输出指定年月有多少天
进一步优化。