1 记住:指针一定分配地址
2 函数名在vs软件中max_test函数名不能直接写成max函数名,否则会报返回值类型不一致。因为max调用的是系统函数max,返回值是int类型。
#include <stdio.h>
#include <stdlib.h>//maolloc需要
//要求:写一个求取最大值的程序,使用指针函数
#define TESTCASE 3
//注意点:一定要给指针分配一个地址。
int *max_test(int a, int b)
{
#if TESTCASE==0
//报错代码
int *p = NULL;//指针初始化,但是没有给指针赋值地址哦!!!!
*p = a > b ? a : b;
return p;
#elif TESTCASE==1
//正确代码
int *p = (int *)malloc(sizeof(int)); //给指针分配地址,在内存中分配地址。
*p = a > b ? a : b;
return p;
#elif TESTCASE==2
//正确代码
int c= a>b?a:b;
return &c;
#else TESTCASE==3
//正确代码
int *p;
int c;
c = a > b ? a : b;
p = &c; //给指针分配地址,赋值地址。
return p;
#endif
}
int main(void)
{
int *p;
p=max_test(3, 4); //给指针分配地址,赋值地址。
printf("最大值%d\n", *p);
}