资源描述:
《C语言程序设计上机指导教学课件精品高职项目六 指针及其应用.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、项目六指针及其应用本章重点×文本指针的基本概念。指针和指针变量。数组和指针。函数的指针。任务一关于指针应用实验一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验描述指针应用实验。实验目的(1)掌握指针变量的定义、初始化以及通过指针变量对数据的访问。(2)掌握指针、数组、地址之间的关系。一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析(3)掌握用指针作为函数参数的方法。(4)掌握动态内存分配一、关于指针应用实验×任务一关于指针应用实验二、实验考核
2、三、典型例题及解析任务实施实验6-1指针变量定义、赋值、运算示例源程序6-1:#includevoidmain(void){inta=3,*p;一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析p=&a;printf(“a=%d,*p=%d”,a,*p);*p=10;printf(“a=%d,*p=%d”,a,*p);printf(“Entera:”);scanf(“%d”,&a);一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例
3、题及解析printf(“a=%d,*p=%d”,a,*p);(*p)++;printf(“a=%d,*p=%d”,a,*p);printf(“%d,%d”,*&a,&*p);}一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果原理提示:我们在编辑源代码是要特别注意*p=&a,*p=a和p=&a他们三者的区别。*是解引用运算符,&是取地址运算符。一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析*p=&a这样写是不正确的(除非p是指
4、向指针的指针),这时候*p前面要有类型符(比如int等),通常的情况是这样用的int*p=&a;这一句作用相当于int*p;p=&a;两句,这句话的意思是定义一个int类型指针,然后用a的地址给p赋值;一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析对于指针p来说,*p就是指针p所指向的内存空间存储的值。*p=a就是把p所指向的那一内存空间的值赋值为a,p本身不改变。一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析p=&a就是用a的地址对p赋值,
5、a是一个变量,&a就是存储这个变量的内存地址,指针存储的就是一个地址,*p就是这一地址中的内容。一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果运行结果:思考:若本实验把第四行语句“p=&a;”,如果去掉,会产生什么结果呢?一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果:大家可以知道:使用了未初始化的局部变量“p”。一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析任务实施思考:若第十一行语句“(*p)+
6、+;”,如果去掉括号变成“*p++;”会产生什么结果?一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析任务实施实验6-2指针与一维数组示例源程序6-2:#includevoidmain(){intn,*ptr;一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析inta[5]={1,2,3,4,5};ptr=a;for(n=0;n<=4;n++){pr
7、intf(“%4d”,*ptr++);一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析printf(“%d”,ptr);printf(“”);}}一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析实验结果注意要点:大家需要注意,“printf(“%d”,ptr);”这一句输出的是指针
8、ptr的地址,是各各数组元素的内存地址。一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析任务实施实验6-3指针与字符串示例源程序6-3#includemain(){chars[100],*p=s;一、关于指针应用实验×任务一关于指针应用实验二、实验考核三、典型例题及解析intc[4]={0};gets(p);while(*p){if(*p>=’A’&&*p<=’Z’)c[0]++;elseif(*p>=’a’&&*p<=’z’)c[1]+