作业1: 计算两数的和与差。要求自定义一个函数
#include <stdio.h> void sum_diff(float op1,float op2,float *psum , float* pdiff) { *psum = op1+op2; *pdiff = op1-op2; } int main(void) { float f1=18.5, f2=6.7, sum, diff; sum_diff(f1, f2, &sum, &diff); printf("sum=%g, diff=%g ", sum, diff); }
测试:
作业2:利用指针找最大值:要求自定义一个函数
#include<stdio.h> void findmax( int *px, int *py, int *pmax ) { *pmax = *px; if(*py > *pmax) { *pmax = *py; } else *pmax= *px; } int main(void) { int max=0,x,y; printf("Enter x y: "); scanf("%d%d",&x,&y); findmax(&x,&y,&max); printf("max:%d ",max); }
测试:
作业3:拆分实数的整数与小数部分:要求自定义一个函数
#include <stdio.h> void splitfloat(float x,int *intpart,float *fracpart) { *intpart=(int)x; *fracpart=x-(*intpart); } int main() { float a,c; int b; void splitfloat(float x,int *intpart,float *fracpart); printf("输入一个实数x:"); scanf("%f",&a); splitfloat(a,&b,&c); printf("整数部分:%d,小数部分:%f ",b,c); return 0; }
测试:
一、知识点总结:
1.指针变量的定义:类型名: *指针变量名
2.指针的赋值:指针变量被定义后,必须将指针变量和一个特定的变量进行关联后才可以使用
3.说明:
①当p=&a后,*p与a相同。
②int *p;定义指针变量p
*p=10;指针p所指向的变量,即a。
③&*p与&a相同,是地址
*&a与a相同,是变量
4.定义指针变量的一般形式如下:
类型名*指针变量名1,*指针变量名2,... *指针变量名n ;
定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号*
5.定义指针变量要使用指针声明符*。如:int i,*p;
在定义指针变量时,除了指针变量名,还需要说明该指针变量所指向的内存空间上所存放数据的类型。
6.指针p所指向变量的值加1:*p=*p+1 ++*p (*p)++ *p++等价于*(p++)
二、心得:
上节课没来,叫同学给我拍了上课所有的PPT,在同学的帮助下,艰难地完成了作业,下节课会努力跟上课程。