当前位置:文档之家› 实验六 指 针

实验六 指 针

昆明理工大学(C++面向对象编程)上机报告
实验六指针(一)
一、目的和要求
1. 熟悉指针的正确用法。

2. 掌握指针作为函数参数的使用方式
二、实验内容和步骤
1、指出下面程序错误的原因。

main( )
{
int x=10,y=5,*px,*py;
px=py;
px=&x;
py=&y;
printf(“*px=%d,*py=%d,*px,*py);
}
答:警告是px,py没有赋初值;
错误时printf语句中缺少了”
正确:printf(“*px=%d,*py=%d”,*px,*py);
2、下面的程序试图有如下运行结果:
请调试下面的程序,使其有如上执行结果。

#include <stdio.h>
main ()
{
char s*;
char c;
printf(“which style you want to :ln”);
printf(“capital ( c ) or uncapital(a):”);
c=getchar();
if(c=’c’)strcpy(s,”COMPUTER”);
else strcpy(s,”computer”);
put(s);
}
分析出错原因。

If(c=’ c’)不应用赋值语句
Strcpy函数中s 不应该为指针!!应定义为数组;正确程序
3.下面的程序能获得上述运行结果吗?
main()
{
char *S=”COMPUTER”;
char c;
printf(“which style you want t o \n”); printf(“capital (c) or uncapital(u);”); c=getchar();
if(c=’c’)
put(s);
else {
s=”computer”;
puts(s);
}
}
分析出错原因。

If(c=’ c’)不应用赋值语句
Put函数无法输出
正确程序
4.设计一个C程序,用以测试下列各表达式的运算。

(1) y=*px++
(2) y=*++py
(3) y=(*py)++
(4) y=--*ppx++
三、分析讨论
数组与指针的联系与区别。

答:数组时连续分配一串单元,数目开始定义的时候就必须固定下来,看起来
整洁,但是写的程序是死程序,容易浪费内存
指针存放一个地址值,表示指向某一个单元,可以用指针来索引单元。

数组可以完成栈,堆,树等等的操作,它在编程时候的好处是非常的灵活,在构建思路的时候有很大的灵活性。

相关主题