第十次作业
第一题
#include<stdio.h> void sum_diff(float op1,float op2,float *psum,float *pdiff); int main(void) { float op1,op2,sum,diff; printf("input op1 and op2:"); scanf("%f%f",&op1,&op2); sum_diff(op1,op2,&sum,&diff); printf("%f+%f=%f,%f-%f=%f\n",op1,op2,sum,op1,op2,diff); return 0; } void sum_diff(float op1,float op2,float *psum,float *pdiff) { *psum=op1+op2; *pdiff=op1-op2; }
第二题
#include<stdio.h> void findmax(int *px,int *py,int *pmax); int main() { int x,y,max; printf("input x and y:"); scanf("%d%d",&x,&y); findmax(&x,&y,&max); printf("%d\n",max); return 0; } void findmax(int *px,int *py,int *pmax) { if(*px>*py) *pmax=*px; if(*py>*px) *pmax=*py; }
第三题
#include<stdio.h> void splitfloat(float x,int *intpart,float *fracpart); int main() { float x,fracpart; int intpart; printf("input x:"); scanf("%f",&x); splitfloat(x,&intpart,&fracpart); printf("the intpart is:%d\n",intpart); printf("the fracaprt is:%f\n",fracpart); return 0; } void splitfloat(float x,int *intpart,float *fracpart) { int y; float z; y=x/1; z=x-y; *intpart=y; *fracpart=z; }
一、知识点
1.指针变量
(1)一般形式:类型名 *指针变量名;
(2)定义指针变量要使用指针声明符*。
2.指针的基本运算
(1)取地址运算和间接访问运算:单目运算符&用于给出变量的地址。在程序中,“*”除了被用于定义指针变量外,还被用于访问指针所指向的变量,它也被称为间接访问运算符。
·赋值运算:一旦指针被定义并赋值后,就可以如同其他类型变量一样进行赋值运算
3. 角色互换
·指针作为函数的参数
引用调用:调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值。采用引用调用机制需要在函数定义时将指针作为函数的形参,在函数调用时把变量的地址或者指向该变量的指针作为实参。在被调函数中,用指针类型形参接受该变量的地址,并改变形参所指向变量的值。
二、实验过程中遇到的问题及解决方法:赋值时将一个指针的值错赋给了不同类型的指针变量。(忽略了只能将一个指针的指赋给另一个相同类型的指针,对概念不熟悉,没掌握,多熟悉相关知识点和概念,多做练习。)
三、实验心得体会:学的越来越难了,不懂的越来越多 ,要加油了!还有老师问下为什么我每次的作业都是负分呢???