- :换行; :制表符,相当于大空格;
- 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"} };
- 如上结构的好处:关联两个数组在一起;
- 线性搜索最大的问题是效率问题;改善,提高效率------>二分搜索(前提:数据是有序的);
- 排序之一:选择排序,即找到最大的元素然后放到最后,循环。