作业 5 指针应用1
1、自学教材 第8章 指针,回答以下问题:
- 变量、内存单元和地址之间是什么关系?
答:在c语言中,如果定义了一个变量,在编译时就会根据该变量的类型给它分配相应大小的内存单元。
而为了对内存单元中的数据进行操作,一般来按地址存取
- 如何定义指针变量,怎样才能使用指针变量?
答: 定义指针变量的一般形式为:类型名 *指针变量名;
如:int *pointer_1,*pointer_2;
- 什么是指针变量的初始化?
答:指针变量的初始化一般就是使用该运算符取得一个变量的地址,并将其赋值给指针变量
- 指针变量的基本运算有哪些?如何使用指针操作所指向的变量?
答:1.取地址运算和间接访问运算和赋值运算
2.(1)给指针变量赋值 (2)引用指针变量指向的变量 (3)引用指针变量的值
- 指针作为函数参数的作用是什么?
答: 将一个变量的地址传送到另一个变量中去
- 如何使用指针实现函数调用返回多个值?
答:在主函数调用函数时,将变量的地址作为实参,在被调函数中用形参指针分别接收地址
并改变形参所指向变量的值,因此,主函数中的值也随之改变
- 如何利用指针实现内存的动态分配?
2、设计一个程序计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差。
/* 设计一个程序计算输入的两个数的和与差 */ #include<stdio.h> //自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff) void sum_diff(float op1,float op2,float *psum,float *pdiff) { *psum=op1+op2; //定义指向浮点型的指针求和与差 *pdiff=op1-op2; return ; } int main() //调用函数 { float op1,op2,psum,pdiff; printf("please input op1 and op2:\n"); //从键盘输入两个数字 scanf_s("%f %f",&op1,&op2); sum_diff(op1,op2,&psum,&pdiff); printf("*psum=%f\n *pdiff=%f\n",psum,pdiff); //输出结果 }
3、两个相同类型的指针变量能不能相加?为什么?
答:能
4、重做教材P88 例8-9,要求使用选择排序算法