指针函数(返回值为指针的函数):指针变量一定需要分配地址,否则不可以赋值

这篇博客探讨了在Visual Studio(VS)环境中,如何避免函数名与系统内置的max函数冲突。作者通过示例代码展示了在`max_test`函数中,如何正确使用指针分配地址以返回两个数的最大值。错误的代码示例会导致指针未分配地址的错误,而正确的实现则包括使用`malloc`动态分配内存或直接返回局部变量的地址。博客强调了在使用指针时必须为其分配有效地址的重要性。
摘要由CSDN通过智能技术生成
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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值