《c语言程序设计上机指导》(精品高职)项目六

《c语言程序设计上机指导》(精品高职)项目六

ID:42193861

大小:739.59 KB

页数:24页

时间:2019-09-09

《c语言程序设计上机指导》(精品高职)项目六_第1页
《c语言程序设计上机指导》(精品高职)项目六_第2页
《c语言程序设计上机指导》(精品高职)项目六_第3页
《c语言程序设计上机指导》(精品高职)项目六_第4页
《c语言程序设计上机指导》(精品高职)项目六_第5页
资源描述:

《《c语言程序设计上机指导》(精品高职)项目六》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、项目六指针及其应用【实验内容、步骤】1、检查所用计算机是否己经安装VisualC++2012o2、进入VisualC++2012的工作环境。3、编程示例,观察与验证。输入并运行下面的程序,分析运行结果。【任务实施】实验6-1指针变量定义、赋值、运算示例源程序6-1:#includevoidmain(void){inta=3,*p;p=&a;printf(<€a=%d5*p=%d,,,a,*p);*P=10;printf(lta=%d,*p=%d”,a,S);printf(uEn

2、tera:”);scanf(“%d”,&a);printf(ua=%d5*p=%d,,,a,*p);(S)++;printfCsa=%d,*p=%d,,,a,*p);printf(u%d,%d,,J*&a,&*p);}执行源程序后,得到以下运行结果:图6-1-1运行结果图提示:我们在编辑源代码是要特别注意s=&a,*p=a和p=&a他们三者的区别。浹是解引用运算符,&是取地址运算符。*p=&a这样写是不正确的(除非p是指向指针的指针),这时候*p前面要有类型符(比如int等),通常的情况是这

3、样用的intg=&a;这一句作用相当于int*p;p=&a;两句,这句话的意思是定义一个int类型指针,然后用a的地址给p赋值;对于指针p來说,*p就是指针p所指向的内存空间存储的值,*p=a就是把p所指向的那一内存空间的值赋值为a,p本身不改变。p=&a就是用a的地址对p赋值,a是一个变量,&a就是存储这个变量的内存地址,指针存储的就是一个地址,*p就是这--地址中的内容。若本实验把第四行语句“p=&a;”,如果去掉,会产生什么结果呢?去掉“p=&a;"运行错误如下:warningC4700:Micr

4、osoftVisualStudio0x00883047处有未致理的异帛(在6.exe口):OxC0000005:读取矚OxCCCCCCCC时竝访问冲突。

5、图6-1-2错误提示图原因很显然:使用了未初始化的局部变量“p”0若第九行语句“scanf(“%d”,&a);”能改成“scanf(“%d”,p);”会出错吗?答案是不会出错,两个表达式可以互换,因为p是一个指向变量a的一个地址指针。改成scanf(“%d”,p)之后与原句功能相同。我们再来测试,若第十一行语句“(*p)++;”,如果去掉括号变成“*p

6、++;”会产生什么结果?大家可以通过以下两个运行结果图进行比较:图6-1-3运行结果图(1)图6-1-3运行结果图(2)之所以有如此差别是因为去掉括号后自加的不是指向地址内的值,而是改变了指针所指向的地址单元。所以*p=的值不是指向&a地址的值。大家还要注意第十三行语句*&a指的是取地址里的值,而&*p:取指针的地址。实验6-2指针与一维数组示例源程序6-2:#includevoidmain()intn,*ptr;inta[5]={1,2,3,4,51;ptr=a;for(n=0;nv

7、=4;n++)printf(“%4d”广ptr++);printf(“%d",ptr);printf(

8、・・C:Windowssystem32cmd.exe图6-2-2运行结果图若把"printf(u%4d,;*ptr++);"改为"printf(“%4d”,*ptr[n]);"得出的是错误的运行提示:errorC2100:非法的间接寻址程序无法连接。若把aprintf("%4d”广ptr++);”改为aprintf(“%4d”,气a+n));”a是数组的首地址,(a+n)相当于偏移数组中的元素,运行结果如下图:图6-2-3运行结果图大家需要注意,在“printf(“%cT',ptr);”这一句输出

9、的是指针ptr•的地址,是各各数组元素的内存地址。最后,我们再把数组a的数据类型改为float或double,同时输出格式也做相应变化,大家观察到数据随数据类型的改变而变化。运行结果如下图:2.00000029483883.00000029483884.00000029483885.0000002948388请按任意键继续.图6-2-4运行结果图实验6・3指针与字符串示例源程序6-3#includemain(){chars

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。