您的当前位置:首页C语言实验报告八

C语言实验报告八

来源:锐游网
南京信息工程大学 实验(实习)报告

实验(实习)名称 指针及其应用 日期 2019.5.30 得分 指导老师 瞿治国

系 专业 年级 2018 级 班次 班 姓名 学号

一、实验目的

1.实验目的

(1) 掌握变量的指针及其基本用法。 (2) 掌握一维数组的指针及其基本用法。

(3) 掌握指针变量作为函数的参数时,参数的传递过程及其用法。

二、实验内容

(1) 运行以下程序,并从中了解变量的指针和指针变量的概念。

# include int main() {

int a=5,b=5,*p; p=&a;

printf(\"%d ,%ud\\n\ *p=8;

printf(\"%d ,%ud\\n\ p=&b;

printf(\"%d ,%ud\\n\ b=10;

printf(\"%d ,%ud\\n\ return 0; }

(2) 运行以下程序,观察&a[0]、&a[i]和p的变化,然后回答以下问题: ① 程序的功能是什么?

② 在开始进入循环体之前,p指向谁?

③ 循环每增加一次,p的值(地址)增加多少?它指向谁? ④ 退出循环后,p指向谁?

⑤ 你是否初步掌握了通过指针变量引用数组元素的方法?

# include int main()

{

int i,*p,s=0,a[5]={5,6,7,8,9}; p=a;

for(i=0;i<5;i++,p++) s+=*p;

第 1 页 共 4 页

printf(\"\\n s=%d\ return 0; }

(3) 编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ① 输入10个数。

② 调用此函数进行重排。 ③ 输出重排后的结果。

三、实验步骤和实验结果

第一个程序输入后

第二个程序输入后

可以知道①程序的功能是计算数组里所有元素的和 ②在开始进入循环之前p指向a数组的首地址

③循环每增加一次,p的值增加数组内一个元素字节长度,且指向下一个数组元素 ④退出循环后,p指向最后一个元素

⑤已初步了解掌握通过指针变量引用数组元素的方法 第三个程序写出来:

#include #define N 10

void inv(int *,int); int main() { int i,a[N]; for(i=0;i第 2 页 共 4 页

scanf(\"%d\printf(\"逆置前:\\n\"); for(i=0;iprintf(\"逆置后:\\n\");

for(i=0;ivoid inv(int *x,int n) { int *p,*q,t; p=x; q=x+n-1; while(p运行后

}

*q=t; p++; q--;

四、分析与讨论

数据的存储地址是指针,它的值是内存单元的地址编号,描述了数据在计算机内存中存储的形式,反映了计算机处理信息的基本过程;利用数组可以实现的功能,指针也可以做到,甚至更方便。

第 3 页 共 4 页

五、实验小结

我们可以认为数组与指针有着一定的区别和联系。数组名是一个静态的指针,而指针变量中的指针是一个动态的量,二者之间关系紧密,有时可以相互替代。

第 4 页 共 4 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top