- 1
- 0
- 约 67页
- 2023-09-18 发布于河北
- 举报
南京邮电大学《C语言程序设计》课件第5章一级指针与一维数组大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,
C语言程序设计 第五章 一级指针与一维数组 int i,*p; p=i; 一维数组的引入 一维数组的定义和引用-总结 总结 数组名双重含义 1、表示“数组”这个整体概念 2、表示该数组的位置,即数组第一个元素的地址,此时a的值等于a[0]这个元素的物理地址,此时a+i的数值等于a[i]这个元素的物理地址,*(a+i)表示a[i]这个元素的间接表示方法,如下图示意: 课堂练习 从键盘上输入10个整数,输出这些元素及其中正数和负数的个数(请用数组实现) #include stdio.h int main() { int a[10],i; int positive=0,negative=0; printf(Please input 10 elements:\n); for (i=0;i10;i++) scanf(%d,a[i]); for (i=0;i10;i++) if(a[i]0) positive++; else if (a[i]0) negative++ ; for (i=0;i10;i++) printf(%d,,a[i]); printf(\n positive number are %d,negative number are %d\n,positive,negative); return 0; } 一维数组类型(举例) 程序5.3从键盘上输入n(1≤n≤10)个整数,求出最大值 思路: #include stdio.h int main() { int a[10],i,n; int max; do { printf(Please input n(1=n=10):\n); scanf(%d,n); }while (n1||n10); printf(Please input %d elements:\n,n); for (i=0;in;i++) scanf(%d,a[i]); max=a[0] ; for (i=1;in; i++) if (*(a+i)max) max=*(a+i); printf(max element=%d\n,max); return 0; } 一级指针变量与一维数组 数组首元素地址可以传给?——基类型相同的指针变量 地址传递 例:int a[5]; int *p=a; 注意: p是变量, 也可以获得任意元素的地址值, 例:p=a[2] 此时:p[0]等价于*p或a[2], p[2]等价于*(P+2)或a[2] 一级指针变量与一维数组 当p=a后,有下列等价关系存在: (1)数组元素的表示: 下标法:p[i] 、a[i] 间接引用法:*(p+i) 、*(a+i) (2)数组元素地址的表示: 指针表达式法:p+i、a+i 元素取地址法:p[i]、a[i] 程序5.5:用一级指针访问一维数组元素示例 一级指针变量与一维数组 移动下标与移动指针访问数组的元素例示: 程序5.8 请将一个初值分别为1、2、3、4、5、7、8、9、10的整形数组逆置存放,并输出逆置后数组元素。 分析:逆置数组,即从两边向中间对应位置的元素两两互换。 方法一:采用移动下标法,用i和j分别指示待交换的两个元素的下标,i从0开始递增,j从9开始递减,循环条件为ij。 方法二:采用移动指针法,设两个指针p和q分别指向第一个元素和最后一个元素,交换对应的*p和*q,然后p++同时q--,循环条件为pq。 一级指针变量与一维数组 程序5.8 方法一核心代码 for (i=0,j=9;ij;i++,j--) { temp=a[i]; a[i]=a[j]; a[j]=temp; } 等效于:(只用 i 控制下标) for (i=0;i10/2;i++) { temp=a[i]; a[i]=a[10-1-i]; a[10-1-i]=temp; } 一维数组应用举例(查找) 程序5.9 从键盘上输入n(1≤n≤10)个整数作为数组a的元素值,再读入一个待查找的整数x,在a数组中查找x,如果存在输出它的下标,否则提示:“Not present!” 提示:本程序完整的循环条件:inx!=*(p+i) 核心代码 p=a; //使p回到数组开头 while(in) { if (x==*(p+i)) break; i++; } if(in)
您可能关注的文档
- 南开大学《中国近现代史纲要》课件-14中国的现代化追求与民族复兴梦想的实现.ppt
- 南京邮电大学《概率论与数理统计》第01章 - 随机事件及其概率.ppt
- 南京邮电大学《概率论与数理统计》课件-第11章 - 平稳过程.ppt
- 南京邮电大学《概率论与数理统计》课件第13章 - 马尔可夫链.ppt
- 南京邮电大学《C语言程序设计》课件第1章C语言发展历史.ppt
- 南京邮电大学《C语言程序设计》课件第4章程序控制结构.ppt
- 南京医科大学《马哲》1中国马克思主义与当代3.ppt
- 南京医科大学《大学英语》7 steps in introduction writing.pptx
- 南京医科大学《大学英语》It has been thought(2015.12.7英语writing讲解).docx
- 南京医科大学《大学英语》P8gene.doc
- 2025-2026学年小学信息技术(信息科技)四年级 第4册滇人版(2005)教学设计合集.docx
- 2026年氢燃料无人机技术专利分析报告.docx
- 2026年医疗大数据十年应用分析报告.docx
- 2026年光伏组件防水防尘技术报告.docx
- 融资担保2026年风险管理与企业增信发展报告.docx
- 2026年薄荷加工行业产品创新路径及市场报告.docx
- 2026年云计算行业竞争分析及应用场景潜力报告.docx
- 2026年运动装备设计创新与差异化竞争报告.docx
- 问题与运算(1~2)(课件)-三年级下册数学冀教版.pptx
- 2026年智慧校园十年发展报告:数字化教学探索与校园管理重塑.docx
原创力文档

文档评论(0)