您好、欢迎来到现金彩票网!
当前位置:彩之网 > 子程序指针 >

则用ptr就能访问数组的各元素。 10用地址法输入输出二维数组各元

发布时间:2019-07-03 20:31 来源:未知 编辑:admin

  则用ptr就能访问数组的各元素。 10用地址法输入输出二维数组各元素。 include stdio printf4d 1011 12 11 11用指针法输入输出二维数组各元素。 include stdio ptrint 1011 12 2C语言程序设计下载56789101 1

  则用ptr就能访问数组的各元素。 10用地址法输入输出二维数组各元素。 include stdio printf4d 1011 12 11 11用指针法输入输出二维数组各元素。 include stdio ptrint 1011 12 2C语言程序设计下载56789101 11 2对指针法而言 程序可以把二维数组看作展开的一维数组 ptrint 1011 12 11 26 数组指针作函数的参数学习了指向一维和二维数组指针变量的定义和正确引用后我们现在学习用指针变量作函数的参数。 12调用子程序 实现求解一维数组中的最大元素。我们首先假设一维数组中下标为0的元素是最大和用指针变量指向该元素。后续元素与该元素一一比较 若找到更大的元素 就替换。子程序的形式参数为一维数组 实际参数是指向一维数组的指针。 include stdio intsub max 函数声明 int 10ptr 定义变量并使指针指向数组 int max 函数调用其实参是指针 intsub max 函数定义其形参为数组 int inttemp returntemp 程序的m 函数部分定义数组a 共有1 0个元素 由于将其首地址传给了p 则指针变量ptr就指向了数组 调用子程序 再将此地址传递给子程序的形式参数b 这样一来 b数组在内存与a 数组具有相同地址 即在内存完全重合。在子程序中对数组b 的操作 与操作数组a 意义相同。其内存中虚实结合的示意如图6 9所示。m 函数完成数据的输入调用子程序并输出运行结果。s 13上述程序也可采用指针变量作子程序的形式参数。 include stdio intsub max int 10ptr intmax intsub max 形式参数为指针变量int inttemp returntemp 在子程序中 形式参数是指针 调用程序的实际参数p r为指向一维数组a的指针虚实结合 子程序的形式参数b得到p 指向了内存的一维数组。数组元素采用下标法表示即一维数组的头指针为b 数组元素可以用b 14上述程序的子程序中 数组元素还可以用指针表示。 include stdio 3下载int sub max int 10ptr intmax intsub max 子程序定义int inttemp returntemp 12程序在内存中虚实结合示意图图610 13程序在内存中虚实结合示意图在程序中赋值语句t 后作b程序的运行结果与上述完全相同。对上面的程序作修改 在子程序中不仅找最大元素 同时还要将元素的下标记录下来。 include stdio intmax 函数声明 int intmax 定义返回指针的函数int p用于跟踪数组t用于记录最大值元素的地址 n来控制循环结束a是数组首地址 p用于跟踪数组元素的地址 a正好是所跟踪元素相对数组头的距离或者说是所跟踪元素相对数组头的元素个数 所以在m 15用指向数组的指针变量实现一维数组的由小到大的冒泡排序。编写三个函数用于输入数据、数据排序、数据输出。在第5章的例题中 我们介绍过选择法排序及算法 此例再介绍冒泡排序算法。为了将一组n个无序的数整理成由小到大的顺序 将其放入一维数组a 通过交换保证数组的相邻两个元素前者小后者大。此次完全的两两比较 能免实现a 成为数组中最大。余下n 1个元素 按照上述原则进行完全两两比较 成为余下n1个元素中最大。 进行共计n 1趟完全的两两比较 使全部数据整理有序。下面给出一趟排序的处理过程 原始数据3 4个元素进行3次两两比较得到一个最大元素。若相邻元素表示为a 用指针变量P指向数组则相邻元素表示为 程序实现如下include stdio voidinput 函数声明 6C语言程序设计下载voidsort void output int 数据输入函数调用实参a是数组名 排序实参p是指针变量 输出实参p是指针变量 void input arr r是数组int arr printfinput data voidsort ptr r是指针变量int ptr voidoutput arr 数据输出int arr ptrarr 利用指针指向数组的首地址 printf output data 2343 1023 3由于C程序的函数调用是采用传值调用即实际参数与形式参数相结合时 实参将值传给形式参数 所以当我们利用函数来处理数组时 如果需要对数组在子程序中修改 只能传递数组的地址 进行传地址的调用 在内存相同的地址区间进行数据的修改。在实际的应用中 如果需要利用子程序对数组进行处理 函数的调用利用指向数组 的指针作参数无论是实参还是形参共有下面四种情况 实参形参1数组名数组名2数组名指针变量3指针变量数组名4指针变量指针变量在函数的调用时 实参与形参的结合要注意所传递的地址具体指向什么对象 是数组的首址 还是数组元素的地址 这一点很重要。 16用指向二维数组的指针作函数的参数 实现对二维数组的按行相加。 include stdio floatscore1 score2 score3 pa 指针变量pa指向二维数组 score1 score2 score3分别记录三行的数据相加 int voidfun 函数调用不仅传递数组首地址 还要传递变量的地址 voidfun p1p2 p3 float p1p2 p3 int p1p1 p2p2 p3p3 第2行的数据相加程序中与形式参数p 17求解二维数组中的最大值及该值在二维数组中的位置。第6章指针1 8C语言程序设计下载我们知道二维数组在内存中是按行存放 假定我们定义二维数组和指针如下 int 则指针p就指向二维数组。其在内存的存放情况如图611所示。a 17中二维数组在内存中的存放从上述存放情况来看若把二维数组的首地址传递给指针p 则映射过程如图6 11所示。我们只要找到用p所表示的一维数组中最大的元素及下标 就可转换为在二维数组中的行列数。 include stdio maxmaxi maxj 每行有四个元素求该元素所在列 求该元素所在行printf max maxmaxi maxj int max arr p1p2 p1p2 2指向最大值在一维数组中的位置n是数组的大小 int p1p1 指针与字符数组在前面的课程中我们用过了字符数组 即通过数组名来表示字符串 数组名就是数组的首地址 是字符串的起始地址。下面的例子用于简单字符串的输入和输出。第6章指针1 9下载include stdio charstr 20 goodmorning good morning 现在 我们将字符数组的名赋予一个指向字符类型的指针变量 让字符类型指针指向字符串在内存的首地址 对字符串的表示就可以用指针实现。其定义的方法为 char str 20 这样一来字符串s r就可以用指针变量P来表示了。include stdio charstr 20 goodmorning good morning 需要说明的是 字符数组与字符串是有区别的 字符串是字符数组的一种特殊形式 存储时以“ 0”结束 所以 存放字符串的字符数组其长度应比字符串大1。对于存放字符的字符数组 若未加“ 0”结束标志 只能按逐个字符输入输出。 18字符数组的正确使用方法。 include stdio charstr 10 strint 标志输出出错 puts str 字符数组无 标志输出出错 对上述程序中字符数组以字符串形式输出 若无“ 0”标志 则找不到结束标志 输出出错。 19用指向字符串的指针变量处理两个字符串的复制。字符串的复制要注意的是 若将串1复制到串2 一定要保证串2的长度大于或等于串1。 charstr1 30 str2 20 ptr1 str1 ptr2 str2 printf input str1 printfinput str2 whileptr2 ptr1 ptr2 字符串复制 在程序的说明部分定义的字符指针指向字符串。语句while ptr2 ptr1 ptr2 先测试表达式的值 若指针指向的字符是“ 表达式的值为假循环结束 表达式的值非零 则执行循环 inputstr1 loveChina input str2 loveChengdu 2Ilove China loveChengdu 2Ilove Chengdu loveChengdu 现在 我们修改程序中语句p ptr1ptr2 会出现什么结果呢 请思考。 20用指向字符串的指针变量处理两个字符串的合并。 include stdio charstr1 50 str2 20 ptr1 str1 ptr2 str2 inputstr1 inputstr2 whileptr1 ptr1 移动指针到串尾 while ptr2 ptr1 ptr2 串连接 写入串的结束标志ptr1 str1 ptr2 str2

  c语言课件006【精品】,c语言课件,c语言精品课程,c语言,c语言编程软件,c语言入门,c语言程序设计,c语言教程,c语言编译器,c语言入门经典

http://ibtlsports.com/zichengxuzhizhen/153.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有