6.4.1指针与二维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址。

Slides:



Advertisements
Similar presentations
《C语言程序设计》复习
Advertisements

电子成绩单项目实现.
第一章 C语言概述 计算机公共教学部.
4.3 使用二维数组 P 求两个矩阵的和 求方阵对角线上元素之和 显示算术题和学生答题信息
C语言基础——指针的高级应用 Week 05.
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第十三章 文件.
C语言程序设计 第八章 函数.
C语言程序设计 第十二章 位运算.
C语言程序设计 第五章 选择结构程序设计.
高级语言程序设计 主讲人:陈玉华.
C程序设计 第9章 自定义数据类型 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
目录 10.1 指针的基本概念 10.2 指向变量的指针变量 10.3 指向数组的指针变量 10.4 指向函数的指针变量和指针型函数
项目六 用指针优化学生成绩排名 项目要求 项目分析
第五章 选择结构程序设计 一、关系运算符和表达式 1、关系运算符 在程序中经常需要比较两个量的大小关系, 以决定程序下一步
Introduction to the C Programming Language
Introduction to the C Programming Language
目录 第八章 数组 1 简单学生成绩管理系统的开发 2 一维数组 3 多维数组 4 字符数组 5 数组作函数参数.
第七章 函数 目录 有参的加法函数的开发 函数定义的一般形式 函数参数和函数的值 函数的调用
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
Introduction to the C Programming Language
算法的基本概念.
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
Introduction to the C Programming Language
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第6章 预 处 理.
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
数组 梁春燕 华电信息管理教研室.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言概述 第一章.
C语言大学实用教程 第5章 函数与程序结构 西南财经大学经济信息工程学院 刘家芬
C语言复习3----指针.
C语言复习2----函数.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
C语言大学实用教程 第6章 数组 西南财经大学经济信息工程学院 刘家芬
函数 概述 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块, 特点: 开发方法: 自上向下,逐步分解,分而治之
C语言程序设计 教案 崔武子制作
C语言的特点 1. C程序由许多函数组成 2. C程序必须有且只有一个主函数main( ) 3. 函数用“{”和“}”表示起点和终点
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
第六章 指针 C++程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值.
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
第十章 指针 指针是C语言的重要概念,是C语言的特色,是C语言的精华。 10.1 地址和指针的概念 内存中的每一个字节都有一个地址。
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
第6章 预 处 理.
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章 类型、对象、运算符和表达式.
实验七 数 组 第21讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
习 题 课(作业).
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
程序设计基础.
第七章  数 组.
目录 12.1 位运算符 12.2 位域(位段) 1.
第九章 指针 C程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值.
第一次上機考參考答案 僅供參考,同學可自行再想更好的方法..
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Introduction to the C Programming Language
函式庫補充資料 1.
C语言基础学习 从外行到入门.
隨機函數.
Presentation transcript:

6.4.1指针与二维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址。 a+i=a[i]=&a[i][0] 代表第i行的首地址 不讲 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

6.4.1指针与二维数组 a[0][3] a[0][2] a[0][1] a[0][0] a[1][3] a[1][2] a[1][1] 二维数组的逻辑结构图如下: a[0][3] a[0][2] a[0][1] a[0][0] a[1][3] a[1][2] a[1][1] a[1][0] a[2][3] a[2][2] a[2][1] a[2][0] a[0] a[1] a[2] a+0 a+2 a+1 不讲 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

6.4.1指针与二维数组 【例6-16】输出二维数组有关值 #include <stdio.h> main( ) { int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; printf("%d,",a); //第0行首地址 printf("%d,",a[0]); //第0行0列地址 printf("%d\n",&a[0][0]); //第0行0列地址 printf("%d,",a+1); //第1行首地址 printf("%d,",*(a+1)); //第1行0列地址 printf("%d,",&a[1]); printf("%d\n",&a[1][0]); } 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

6.4.1指针与二维数组 【例6-17】用指针变量输出数组元素。 #include <stdio.h> main( ) { int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; int i,*p=a[0]; for(i=0;i<12;i++,p++) printf("%5d",*p); if ((i+1)%4==0) printf("\n"); } 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

6.4.2 指向指针的指针 如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。 定义格式: 6.4.2 指向指针的指针 如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。 定义格式: 类型标识符 **指针变量名 如:char **p; 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

6.4.2 指向指针的指针 【例6-18】在例6-11的基础上,我们对源程序做以下修改。 #include<stdio.h> 6.4.2 指向指针的指针 【例6-18】在例6-11的基础上,我们对源程序做以下修改。 #include<stdio.h> main( ) { static char *name[]={ "Illegal day", "Monday","Tuesday","Wednesday","Thursday", "Friday", "Saturday","Sunday"}; char **ps; //定义一个指向字符指针变量的指针变量ps int i; printf("input Day No:\n"); scanf("%d",&i); if(i<0) exit(1); ps=name+i; //为ps赋值 printf("Day No:%2d-->%s\n",i,*ps); //输出 } 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

6.4.2 指向指针的指针 name是一个指针数组,它的每一个元素是一个指针型数据,其值为地址。name是一个数组,它的每一个元素都有相应的地址。数组名name代表该指针数组的首地址。其中当i=1时,name[i]是"Monday"的首地址,ps=name+i是name[i]的地址,所以ps就是指向指针型数据的指针变量。输出时的“*ps”表示*(name+i),即name[i]。 浙江长征职业技术学院—计算机与信息技术系—相方莉制作

double *c[3]={a[0],a[1],a[2]}; int i,j; #include <stdio.h> #include <math.h> double f(double **x,int m,int n) { double max; int i,j; for(i=0;i<m;i++) { max=x[i][0]; for(j=1;j<n;j++) if(fabs(x[i][j])>fabs(max)) max=x[i][j]; for(j=0;j<n;j++) x[i][j]/=max; } void main() { FILE *fp; double a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; double *c[3]={a[0],a[1],a[2]}; int i,j; /****考生在以下空白处写入执行语句******/ /****考生在以上空白处写入执行语句******/ fp=fopen("CD2.dat","wb"); fwrite(*a+8,8,1,fp); fclose(fp); } f(c,3,3); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%lf ",a[i][j]); } printf("\n"); 浙江长征职业技术学院—计算机与信息技术系—相方莉制作