第十次作业

第一题

#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. 角色互换

·指针作为函数的参数

引用调用:调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值。采用引用调用机制需要在函数定义时将指针作为函数的形参,在函数调用时把变量的地址或者指向该变量的指针作为实参。在被调函数中,用指针类型形参接受该变量的地址,并改变形参所指向变量的值。

二、实验过程中遇到的问题及解决方法:赋值时将一个指针的值错赋给了不同类型的指针变量。(忽略了只能将一个指针的指赋给另一个相同类型的指针,对概念不熟悉,没掌握,多熟悉相关知识点和概念,多做练习。)

三、实验心得体会:学的越来越难了,不懂的越来越多 ,要加油了!还有老师问下为什么我每次的作业都是负分呢???

posted @ 2016-11-30 10:33  江超民  阅读(255)  评论(1编辑  收藏  举报