欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言新教材PPT课堂课件-第10章_指针2.pdf

    • 资源ID:43621545       资源大小:834.28KB        全文页数:109页
    • 资源格式: PDF        下载积分:40金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要40金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言新教材PPT课堂课件-第10章_指针2.pdf

    第第第第十十十十章章章章l l 主主要要内内容容 10.1 10.1地地址址和和指指针针的的概概念念 10.10.变变量量的的指指针针和和指指向向变变量量的的 指指针针变变量量 10.10.数数组组与与指指针针 10.10.字字符符串串与与指指针针 10.10.指指向向函函数数的的指指针针 10.10.返返回回指指针针值值的的函函数数 10.10.指指针针数数组组和和指指向向指指针针的的指指针针 10.810.8有有关关指指针针的的数数据据类类型型和和指指针针运运算算的的小小结结 10.110.1地地址址和和指指针针的的概概念念内存区的每一个字节有一个编号,这就是“地地址址”。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。.按变量地址存取变量值的方式称为“直直接接访访问问”方式 (,);(,);2.另一种存取变量值的方式称为“间间接接访访问问”的方式。即,将变量的地址存放在另一个变量中。在在语语言言中中,指指针针是是一一种种特特殊殊的的变变量量,它它是是存存放放地地址址的的。一个变量的地址称为该变量的“指指针针”。例如,地址2000是变量的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指指针针变变量量”。上述的i_pointer就是一个指针变量。指指针针和和指指针针变变量量的的定定义义:10.2 10.2 变变量量的的指指针针和和指指向向变变量量的的指指 针针变变量量10.10.1.1 定定义义一一个个指指针针变变量量定义指针变量的一般形式为基基类类型型 *指指针针变变量量名名;下面都是合法的定义:float *pointer_;char*pointer_;可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向一个该变量。例例如如:pointer_;pointer_;在在定定义义指指针针变变量量时时要要注注意意两两点点:(1)指针变量前面的“*”,表示该变量的类型为指针型变量。例:float *pointer_1;指针变量名是pointer_1,而不是*pointer_1。(2)在定义指针变量时必须指定基类型。(1)需要特别注意的是,只有整型变量的地址才能放到指向整型变量的指针变量中。下面的赋值是错误的 float a;int *pointer_1;pointer_1=&a;10.2.2 10.2.2 指指针针变变量量的的引引用用 注注意意:指针变量中只能存放地址(指针),不要将一个整数(或任何其他非地址类型的数据)赋给一个指针变量。例例10.通通过过指指针针变变量量访访问问整整型型变变量量#include voidmain()int,;int*pointer_,*pointer_;pointer_;/*把变量的地址赋给 pointer_1*/pointer_;/*把变量的地址赋给 pointer_*/printf(%,%,);printf(%,%,*pointer_,*pointer_);对对“”和和“*”*”运运算算符符说说明明:如果已执行了语句 pointer_;(1)*pointer_的的含含义义是是什什么么?“”和“*”两个运算符的优先级别相同,但按自右而左方向结合。因此,*pointer_与相同,即变量a的地址。如果有pointer_2*pointer_;它的作用是将(的地址)赋给pointer_2,如果pointer_2原来指向,经过重新赋值后它已不再指向了,而指向了。(2)*的的含含义义是是什什么么?先进行运算,得的地址,再进行*运算。*和*pointer_的作用是一样的,它们都等价于变量。即*与等价。(3)(*pointer_)相相当当于于。例例10.2 输输入入和和两两个个整整数数,按按先先大大后后小小的的顺顺序序输输出出 和和。#include void main()int*1,*2,*,;scanf(,);1;if();printf(=,=,);printf(max=,min=,*1,*2);运运行行情情况况如如下下:,当当输输入入,时时,由由于于,将将和和交交换换。交交换换前前的的情情况况见见图图(),交交换换后后见见图图()。10.10.3.3 指指针针变变量量作作为为函函数数参参数数例例10.3 对对输输入入的的两两个个整整数数按按大大小小顺顺序序输输出出#include void main()void swap(int*,int*);int,;int*pointer_,*pointer_;scanf(,);pointer_;pointer_2;if(swap(pointer_,pointer_2);printf(,);void swap(int*,int*)int temp;temp*1;*;*temp;例例10.输输入入、3个个整整数数,按按大大小小顺顺序序输输出出。#include void main()void exchange(int*1,int*2,int*3);int ,*,*,*;scanf(%,%,%,&,&,&);exchange(,);printf(,);void exchange(int*,int*,int*)void swap(int*,int*);if(*)swap(,);if(*)swap(,);if(*swap(,);void swap(int*,int*)int temp;temp*;*;*temp;10.3 10.3 数数组组与与指指针针 一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数数组组元元素素的的指指针针就就是是数数组组元元素素的的地地址址。定义一个指向数组元素的指针变量的方法,与以前介绍的指向变量的指针变量相同。例例如如:;(定义为包含个整型数据的数组)*;(定义为指向整型变量的指针变量)应当注意,如果数组为型,则指针变量的基类型亦应为型。10.3.1 10.3.1 指指向向数数组组元元素素的的指指针针对对该该指指针针变变量量赋赋值值:;把元素的地址赋给指针变量。也就是使指向数组的第号元素,如图:10.10.通通过过指指针针引引用用数数组组元元素素引用一个数组元素,可以用:()下下标标法法,如如形形式式;()指指针针法法,如如*()或或*()。其中是数组名,是指向数组元素的指针变量,其初值。例例10.5 输输出出数数组组中中的的全全部部元元素素。假设有一个数组,整型,有个元素。要输出各元素的值有三种方法:(1)下下标标法法。#include void main()int;int;for(;)scanf(,);printf();for(;)printf(,);(2)通通过过数数组组名名计计算算数数组组元元素素地地址址,找找出出元元素素的的值值。#include voidmain()int;int;for(;)scanf(,);printf();for(;)printf(,*();(3)用用指指针针变变量量指指向向数数组组元元素素。#include void main()int;int *,;for(;)scanf(,);printf();for(;();)printf(,*);例例10.通通过过指指针针变变量量输输出出数数组组的的个个元元素素。#include void main()int*,;for(;)scanf(,);printf();for(;,)printf(,*);程程序序运运行行情情况况:1 2 3 4 5 6 7 8 9 022153 234 0 0 30036 25202 11631 8259 8237 28483显显然然输输出出的的数数值值并并不不是是数数组组中中各各元元素素的的值值#include void main()int*,;for(;)scanf(,);printg();p=a;for(;,)printf(,*);10.10.3 .3 用用数数组组名名作作函函数数参参数数在在第第8章章8.7节节中中介介绍绍过过可可以以用用数数组组名名作作函函数数的的参参数数如:void main()i(int arr,int);int array;(array,);void(int arr,int)例例10 将将数数组组中中个个整整数数按按相相反反顺顺序序存存放放。#include void main()void inv(int ,int);int,;printf(The original array:);for(;)printf(,);printf();inv(,);printf(The array has been in verted:);for(;)printf(,);printf();void inv(int ,int)/*形参x是数组名*/int temp,();for(;);temp;temp;return;运运行行情情况况如如下下:The original array:,The array has been inverted:,#include void main()void inv(int*,int);int,;printf(The original array:);for(;)printf(,);printf();inv(,);printf(The array has been in verted:);for(;)printf(,);printf();对对刚刚才才的的程程序序可可以以作作一一些些改改动动。将将函函数数inv中中的的形形参参改改成成指指针针变变量量。void inv(int*,int)/*形参x为指针变量*/int,temp,*,*,();for(;,)emp*;*;*temp;return;如如果果有有一一个个实实参参数数组组,想想在在函函数数中中改改变变此此数数组组中中的的元元素素的的值值,实实参参与与形形参参的的对对应应关关系系有有以以下下种种情情况况:(1)形形参参和和实实参参都都用用数数组组名名,如如:void main()void (int ,int)int;(,);(2)实实参参用用数数组组名名,形形参参用用指指针针变变量量。如如:void()void(int*,int)int ;(,);(3)实实参参形形参参都都用用指指针针变变量量。例例如如:void main()void(int*,int)int,*p=a;(p,);(4)实实参参为为指指针针变变量量,形形参参为为数数组组名名。如如:void main()void(int x,int),*p=a;(p,);#include void main()void inv(int*,int);int,*;printf(The original array:n);for(;,)scanf(,);printf();inv(,);/*实实参参为为指指针针变变量量*/printf(The array has been inverted:);for(;)printf(,*);printf();void inv(int*,int)int,temp,*,*;();for(;,)emp*;*;*temp;return;例例109 用用选选择择法法对对个个整整数数按按由由大大到到小小顺顺序序排排序序。#include void main()void sort(int ,int);int*,10;for(;)scanf(,);sort(,);for(,;)(,*);void sort(int ,int)int,;for(;);for(;)();(!);10.3.4 10.3.4 多多维维数数组组与与指指针针 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。1.1.多多维维数数组组元元素素的的地地址址先回顾一下多维数组的性质,可以认为二维数组是“数组的数组”,例:定定义义int a34=1,3,5,7,;则二维数组a是由3个一维数组所组成的。设二维数组的首行的首地址为 ,则例例10.0 输输出出二二维维数数组组有有关关的的值值#include define FROMAT,void main()int 341,3,5,7,9,;printf(,*);printf(,0,*();printf(,0,00);printf(,1,);printf(,10,*(+)+);printf(,*();printf(,);printf(,*(*();某某一一次次运运行行结结果果如如下下:,(0行首地址和0行0列元素地址),(0行0列元素地址),(0行0首地址和0行0列元素地址),(1行0列元素地址和1行首地址),(1行0列元素地址),(2行0列元素地址),(2行首地址),(1行0列元素的值)2.2.指指向向多多维维数数组组元元素素的的指指针针变变量量(1)指指向向数数组组元元素素的的指指针针变变量量例例10.11 10.11 用用指指针针变变量量输输出出二二维维数数组组元元素素的的值值#include void main()int 341,3,5,7,9,11,13,15,17,19,21,23;int*;for(;)()printf();printf(,*);运运行行结结果果如如下下:1 3 5 7 9 11 13 1519 21 23 (2)指指向向由由个个元元素素组组成成的的一一维维数数组组的的指指针针变变量量例例10.13 10.13 出出二二维维数数组组任任一一行行任任一一列列元元素素的的值值#include void main()int 1,3,5,7,9,11,13,15,;int(*),;scanf(,);printf(,*(*();运行情况如下:,(本行为键盘输入),3.用用指指向向数数组组的的指指针针作作函函数数参参数数例10.13 有一个班,个学生,各学门课,计算总平均分数以及第个学生的成绩。这个题目是很简单的。只是为了说明用指向数组的指针作函数参数而举的例子。用函数average求总平均成绩,用函数search找出并输出第个学生的成绩。#include void main()void average(float*p,int n);void search(float(*p)4,int n);float score34=65,67,70,60,80,87,90,81,90,99,100,98;average(*score,12);*求12个分数的平均分*search(score,);*求序号为的学生的成绩*void average(float*,int)float*_;float sum,aver;p_end;for(;_;)sumsum(*);aversum;printf(average,aver);void search(float(*)4,int)/*p是指向具有4个元素的一维数组的指针*/int;printf(the score of No.%are:,);for(;)printf(5.2,*(*();程程序序运运行行结结果果如如下下:averageThe score of No.2 are:.例例10.4 在在上上题题基基础础上上,查查找找有有一一门门以以上上课课程程不不及及格格的的学学生生,打打印印出出他他们们的的全全部部课课程程的的成成绩绩。#include void main()void search(float(*p)4,int n);/*函数声明*/float score34=65,57,70,60,58,87,90,81,90,99,100,98;search(score,);void search(float(*p)4,int)int,;for(;)flag;for(;)if(*(*())flag;if()printf(No.%d fails,his scores are:n,j+1);for(;)printf(%.,*(*();printf();程序运行结果如下:No.1 fails,his scores are:.No.2 fails,his scores are:.10.10.字字符符串串与与指指针针10.4.10.4.字字符符串串的的表表示示形形式式 例例 10.5 定定义义一一个个字字符符数数组组,对对它它初初始始化化,然然后后输输出出该该字字符符串串#include void main()char stringI love China!;printf(,string);(1)用用字字符符数数组组存存放放一一个个字字符符串串,然然后后输输出出该该字字符符串串。(2)用用字字符符指指针针指指向向一一个个字字符符串串。可以不定义字符数组,而定义一个字符指针。用字符指针指向字符串中的字符。例例106 定定义义字字符符指指针针#include void main()char string I love China!;printf(,);例例10.10.7 7 将将字字符符串串复复制制为为字字符符串串。#include void()char am a boy,20;int;for(;*()!;)*()*();*();printf(string a is:,);printf(string b is:);for(;!;)printf(,);printf();也可以设指针变量,用它的值的改变来指向字符串中的不同的字符。例例10.8 用用指指针针变变量量来来处处理理例例107问问题题。#include void main()char =I am a boy.,20,*p1,*p2;int;for(;*!;p1,p2)*;*;printf(string is:,);printf(:);for(;!;)printf(,);printf();程程序序必必须须保保证证使使和和同同步步移移动动 10.4.210.4.2 字字符符指指针针作作函函数数参参数数例例10.19 用用函函数数调调用用实实现现字字符符串串的的复复制制#include void main()void copy_string(char from,char to);char a=am a teacher;char =you are a student;printf(“string a=string,);printf(“copy string a to string b:n”);copy_string(,);printf(nstring a=%snstring b=%sn,a,b);(1)用用字字符符数数组组作作参参数数void copy_string(char from,char to)int;while(from!)tofrom;to;程程序序运运行行结结果果如如下下:string aI am a teacher string b you are a student copy string a to string b:string a I am a teacherstringI am a teacher(2)形形参参用用字字符符指指针针变变量量#include void main()void copy_string(char*from,char*);char*am a teacher.;char*you are a student;printf(string a=string,);printf(copy string a to string b:n);_(,);printf(nstring a=%snstring b=%sn,a,b);void copy_string(char*,char*)for(;*from!;from,to)*to from;*to;(3)(3)对对copy string 函函数数还还可可作作简简化化 1、将将copy_string函函数数改改写写为为void copy_string(char*from,char*)while(*from)!)to;from;copy_string函函数数的的函函数数体体还还可可改改为为 while(*to*from)!);copy_string函函数数的的函函数数体体还还可可写写成成 while(*from!)*to*from;*to;上上面面的的while语语句句还还可可以以进进一一步步简简化化为为下下面面的的while语语句句:while(*to*from);它与下面语句等价:while(*to*from)!);将*from赋给*to,如果赋值后的*to值等于则循环终止(已赋给*to)函函数数体体中中while语语句句也也可可以以改改用用for语语句句:for(;(*to*from)!;);或for(;*to*from;);也也可可用用指指针针变变量量,函函数数copy_string可可写写为为void copy_string(char from,char )char*,*;from;while(*p2*p1)!);(1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址),决不是将字符串放到字符指针变量中。(2)赋值方式。对字符数组只能对各个元素赋值,不 能用以下办法对字符数组赋值。char str;strI love China!;而对字符指针变量,可以采用下面方法赋值:char*;I love China!;10.4.3 10.4.3 对对使使用用字字符符指指针针变变量量和和字字符符数数组组的的讨讨论论字字符符数数组组和和字字符符指指针针变变量量二二者者之之间间的的区区别别:(3)对字符指针变量赋初值:char*love China!;等价于 char*;I love Chian!;而对数组的初始化:char str love China!;不能等价于 char str;str I love China!;(4)定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址。例例如如:char str;scanf(,str);(5)指针变量的值是可以改变的,例如:例例10.0改改变变指指针针变变量量的的值值#include void()char*I love China!;printf(,);#include voidmain()char*love hina!;int;printf(“The sixth character is%cn,a5);for(;!;)printf(,);若定义了一个指针变量,并使它指向一个字符串,就可以用下标形式引用指针变量所指的字符串中的字符。例例如如:10.10.指指向向函函数数的的指指针针10.5.1 10.5.1 用用函函数数指指针针变变量量调调用用函函数数用指针变量可以指向一个函数。函数在编译时被分配给一个入口地址。这个函数的入口地址就称为函函数数的的指指针针。#include voidmain()int max(int,int);int,;scanf(,);(,);printf(,);int max(int,int)int;if();else ;return();将 main 函数改写为#include voidmain()int (int,int);int(*)();int,;scanf(,);(*)(,);printf(,);10.5.2 10.5.2 用用指指向向函函数数的的指指针针作作函函数数参参数数 函数指针变量常用的用途之一是把指针作为参数传递到其他函数。指向函数的指针也可以作为参数,以实现函数地址的传递,这样就能够在被调用的函数中使用实参函数。实参函数名 f1 void(int(*x1)(int),int(*x2)(int,int))int,;(*)();*调用函数*(*)(,);*调用函数*例例10.10.3 3 设设一一个个函函数数processprocess,在在调调用用它它的的时时候候,每每次次实实现现不不同同的的功功能能。输输入入和和两两个个数数,第第一一次次调调用用processprocess时时找找出出和和中中大大者者,第第二二次次找找出出其其中中小小者者,第第三三次次求求与与之之和和。#include void main()int max(int,int);/*函数声明*/int min(int,int);/*函数声明*/int add(int,int);/*函数声明*/void process(int,int,int(*fun)();/*函数声明*/int,;printf(enter a and b:);scanf(,);printf(max);process(,);printf(min);process(,);printf(sum);process(,);int max(int,int)/*函数定义*/int;if();else;return();int min(int,int)/*函数定义*/int;if();else;return();int (int,int)/*函数定义*/int;return();void process(int,int,int(*fun)(int,int)int result;result(*fun)(,);printf(,result);10.10.返返回回指指针针值值的的函函数数一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与以前类似,只是带回的值的类型是指针类型而已。这种带回指针值的函数,一般定义形式为类类型型名名*函函数数名名(参参数数表表列列);例如:int*(int,int);例例10104 4 有有若若干干个个学学生生的的成成绩绩(每每个个学学生生有有门门课课程程),要要求求在在用用户户输输入入学学生生序序号号以以后后,能能输输出出该该学学生生的的全全部部成成绩绩。用用指指针针函函数数来来实实现现。#include void main()float*score 4=60,70,80,90,56,89,67,88,34,78,90,66;float*search(float(*pointer)4,int n);float*;int,;printf(enter the number of student:);scanf(,);printf(The scores of No are:,);search(,);for(;printf(,*();float*search(float(*)4,int)float*;*();return();运运行行情情况况如如下下:enter the number of student:The scores of No.are:56.00 89.00 67.00 88.00例例10.5 对对上上例例中中的的学学生生,找找出出其其中中有有不不及及格格课课程程的的学学生生及及其其学学生生号号。#include void main()float score 4=60,70,80,90,56,89,67,88,34,78,90,66;float search(float(*pointer)4);float*;i,;for(;)search(score);(*(score)printf(scores:,);for(;)printf(5.2,*();printf();10.710.7 指指针针数数组组和和指指向向指指针针的的指指针针10.7.110.7.1 指指针针数数组组的的概概念念一个数组,若其元素均为指针类型数据,称为指指针针数数组组,也就是说,指针数组中的每一个元素都相当于一个指针变量。一一维维指指针针数数组组的的定定义义形形式式为为:类类型型名名 数数组组名名数数组组长长度度;例例如如:*;例例10.6 将将若若干干字字符符串串按按字字母母顺顺序序(由由小小到到大大)输输出出。#include#include void main()void sort(char*name,int n);void printf(char*name,int n);char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer design;int;sort(,);print(,);void sort(char*,int)char *;int,;for(;for(;if(strcmp(name,name)0)=;if(!)temp=namei;namei=namek;namek=temp;void print(char*,int);(;)printf(,);运运行行结结果果为为:Computer designFORTRANFollow meGreat Wall10.7.2 10.7.2 指指向向指指针针的的指指针针定定义义一一个个指指向向指指针针数数据据的的指指针针变变量量:*;的前面有两个*号。*运算符的结合性是从右到左,因此*相当于*(*),显然*是指针变量的定义形式。如果没有最前面的*,那就是定义了一个指向字符数据的指针变量。现在它前面又有一个*号,表示指针变量是指向一个字符指针变量的。*就是所指向的另一个指针变量。例例10.7 使使用用指指向向指指针针的的指指针针。#include void main()char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer design;char *;int;for(;);printf(,*);例例10.28 一一个个指指针针数数组组的的元元素素指指向向整整型型数数据据的的简简单单例例子子。#include void main()int,;int*num5=&a0,&a1,&a2,&a3,&a4;int *,;for(;printf(,*);10.7.3 10.7.3 指指针针数数组组作作mainmain函函数数的的形形参参指针数组的一个重要应用是作为main函数的形参。在以往的程序中,main函数的第一行一般写成以下形式:void main()括弧中是空的。main函数可以有参数,例例如如:void main(int argc,char *argv)。命令行的一般形式为命命令令名名 参参数数 参参数数参参数数例如一个名为file的文件,它包含以下的main函数:void main(int argc,char*argv)while()argv;printf(,argv);argc;在DOS命令状态下输入的命令行为则执行以上命令行将会输出以下信息:10.810.8有有关关指指针针的的数数据据类类型型和和指指针针运运算算的的小小结结10.8.110.8.1有有关关指指针针的的数数据据类类型型的的小小结结10.8.2 10.8.2 指指针针运运算算小小结结(1)指指针针变变量量加加(减减)一一个个整整数数例如:、等。(2)指指针针变变量量赋赋值值将一个变量地址赋给一个指针变量。如:;(将变量的地址赋给)array;(将数组首元素地址赋给)array;(将数组第个元素 的地址赋给)max;(为已定义的函数,将的入口 地址赋给);(和都是指针变量,将的 值赋给)(3)指指针针变变量量可可以以有有空空值值,即即该该指指针针变变量量不不指指向向任任何何变变量量。(4)两两个个指指针针变变量量可可以以相相减减如果两个指针变量都指向同一个数组中的元素,则两个指针变量值之差是两个指针之间的元素个数。(5)两两个个指指针针变变量量比比较较若两个指针指向同一个数组的元素,则可以进行比较。指向前面的元素的指针变量“小于”指向后面元素的指针变量。10.8.3 void10.8.3 void指指针针类类型型 ANSIC新标准增加了一种“void”指针类型,即可定义一个指针变量,但不指定它是指向哪一种类型数据的。ANSIC标准规定用动态存储分配函数时返回void指针,它可以用来指向一个抽象的类型的数据,在将它的值赋给另一指针变量时要进行强制类型转换使之适合于被赋值的变量的类型。例如:*;*;(*);同样可以用(*)将的值转换成*类型。如:(*);也可以将一个函数定义为*类型,如:*(char ch1,char ch2)表示函数返回的是一个地址,它指向“空类型”,如需要引用此地址,也需要根据情况对之进行类型转换,如对该函数调用得到的地址要进行以下转换:(*)(h,h);

    注意事项

    本文(C语言新教材PPT课堂课件-第10章_指针2.pdf)为本站会员(君****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开