\n: 换行; \t: 制表符, 相当于大空格;
a[5]={2};<------->a[5]={2,0,0,0,0};
数组初始化的方法: a[5]={0}; 即全部初始化为 0;
数组初始化的定位初始化(C99):int a[6]={[0]=2,[2]=2,3,};<------>a[0]=2,a[2]=2,a[3]=3, 其余全部初始化为 0;
sizeof: 得出变量或数组的大小; 当对象是数组时, 单位为字节, 即整个数组所占空间的字节大小.
求数组的元素的个数: i=sizeof(a)/sizeof(a[0]); 好处为一点修改了数组中初始的数据, 则不需要修改遍历的代码;
数组变量不能直接赋值; 必须采用遍历才能进行数组间的赋值;
数组遍历的一般形式: for(i=0;i<length;i++){ } 且离开循环后, 不应继续用 i 做数组的下标;
数组作为函数的形式参数时, 不能再利用 sizeof 来计算数组的元素个素; 且不能在 [] 中给出数组的大小; 此时需要另外设一个参数来传递数组的大小;(可以在实参中利用 sizeof 计算数组个数来传递给形式参数 length)
sqrt( ):x 的平方根函数.
函数中平白无故的加入大括号的目的往往是为了调试; 为了不影响大括号外面的相同名字的变量的值;
搜索函数: 单一出口 ret 原则, 此时函数的结构更加清晰;
一专多能不是好的代码, 即一个变量承担了两个责任;
定义字符串数组. 例: char *name[]={"one","two","three"};
结构:
- struct
- {
- int amount;
- char *name;
- }coins[] =
- {
- {1,"one"},
- {2,"two"},
- {3,"three"}
- };
如上结构的好处: 关联两个数组在一起;
线性搜索最大的问题是效率问题; 改善, 提高效率 ------>二分搜索(前提: 数据是有序的);
排序之一: 选择排序, 即找到最大的元素然后放到最后, 循环.
来源: http://www.bubuko.com/infodetail-2948119.html