(第五篇)
目录
4.6冒泡排序
4.7数组指针变量
4.8二维数组传参和指针
4.9指针数组
4.10指针数组模拟二维数组
4.6冒泡排序
代码如下:
(a)先进入一个外循环,使其保证进行数组元素-1次的循环排序;
(b)内循环:
(1)对于每对相邻的两个元素,若发现前比后大,则使他们调换(降序排列);
(2)由于每次循环后可以让一个元素走到指定的位置,所以每次循环后循环次数为sz-1-i,降低冗余查找;()或者可以使用一个标志flag=sz-1,再内循环每次执行完之前--,for循环写成j<flag;
或者如下:
4.7数组指针变量
4.8
(a)上图中两种方式的差别是一个指向整个数组的地址,一个仅仅指向第一个元素地址;
(b)改变指针指向数组得到元素个数就能按想法调用一定数量的元素,但是不能超出数组元素个数,否则越界;
4.8二维数组传参和指针
(a)可以发现,上面的代码传参时传入数组名,二维数组的行数,列数,在函数接受时写出调用每一行的元素个数;
(b)外循环进行行打印,内进行列打印;
(c)打印的内层括号:通过二维数组跳过一个元素(即一行)的方式决定在哪行打印;
(d)外层括号:与里面相似;
(e)注意创造数组指针变量的时候要传入一致的下标;
(f)再看以下:
(g)ptr1:跳过整个二维数组;ptr2:跳过一个二维数组的元素(一个一维数组);
4.9指针数组
4.10指针数组模拟二维数组
(a)结论:类似二维数组指针;
(b)pa指向a的首元素地址,++得到第二个元素地址,所以打印后得到字符串数组的第二个元素即第二个字符串;