《C语言程序设计第八章课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第八章课件.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022-7-52/492022-7-53/49保存大量保存大量同类型的同类型的相关数据相关数据2022-7-54/49a4a3a2 a1a0数组首地址数组首地址基类型基类型下标从下标从0开始开始2022-7-55/49a4a3a2 a1a02022-7-56/492022-7-57/492022-7-58/49main() int a5 = 1,2,3,4,5, b5; b = a; 解决方法解决方法 方法方法1:1:逐个元素赋值逐个元素赋值 b0=a0; b1=a1; b2=a2; b3=a3; b4=a4; 方法方法2:2:通过循环赋值通过循环赋值 int i; for (i=0;i5;
2、i+) bi = ai; 原因原因: :数组名表示数组的首地址数组名表示数组的首地址, ,其值不可改变其值不可改变! !2022-7-59/492022-7-510/492022-7-511/49运行程序或单步执行观察变量变化情况可以看到,运行程序或单步执行观察变量变化情况可以看到,变量变量c c和和a a的值因数组越界而被悄悄破坏了的值因数组越界而被悄悄破坏了123456078#include int main() int a = 1, c = 2, b5 = 0, i; printf(%p, %p, %pn, b, &c, &a); for (i=0; i0 ? sum/n : -1;更安
3、全更安全 2022-7-521/492022-7-522/492022-7-523/49#include #define N 40int ReadScore(int score);int FindMax(int score, int n);int main() int scoreN, max, n;n = ReadScore(score);printf(Total students are %dn, n);max = FindMax(score, n);printf(The highest score is %dn, max); return 0;2022-7-524/49max(i=0)ma
4、x(i=2)max(i=3)2022-7-525/492022-7-526/492022-7-527/492022-7-528/492022-7-529/492022-7-530/492022-7-531/49tempscorejscorei ?70507050702022-7-532/492022-7-533/49k=1k=2k=0k=12022-7-534/49k=3k=4k=3k=42022-7-535/492022-7-536/492022-7-537/492022-7-538/492022-7-539/49哈,找到了!哈,找到了!事先不必排序事先不必排序2022-7-540/49哈,
5、找到了!哈,找到了!按升序排序按升序排序2022-7-541/49唉,没找到!唉,没找到!2022-7-542/49找到时返回找到时返回下标位置下标位置找不到时找不到时 返回返回-1-1若未按学号排序,若未按学号排序,则如何修改程序?则如何修改程序?2022-7-543/49按学号由小按学号由小到大排序到大排序2022-7-544/49a00a01a02a10a11a12a00a01a02a10a11a12实际传送的是数组第一个元素的地址实际传送的是数组第一个元素的地址2022-7-545/49a00a01a02a10a11a12a00a01a02a10a11a12实际传送的是数组第一个元素的地址实际传送的是数组第一个元素的地址偏移偏移1*3+22022-7-546/49可省略数组第一维的长度可省略数组第一维的长度不能省略第二维的长度不能省略第二维的长度2022-7-547/492022-7-548/492022-7-549/49
限制150内