鱼C论坛

 找回密码
 立即注册
查看: 4717|回复: 3

求解这是为什么

[复制链接]
发表于 2013-8-24 21:14:53 | 显示全部楼层 |阅读模式
3鱼币
#include "stdio.h"
#pragma warning(disable:4996)
void max(int *a,int *b);
void main()
{
        int *a,*b;
        scanf("%d,%d",a,b);//此处若新建变量q,w然后a=&q,n=&w程序就不报错。
        max(a,b);//max实现比较大小。
        printf("%d,%d",*a,*b);
}
void max(int *a,int *b)
{
        int c;
        if((*a)<(*b))
        {
                c=*a;
                *a=*b;
                *b=c;
        }
}


最佳答案

查看完整内容

没给出指针变量a,b的值,scanf怎么知道往哪里存放获取的数值呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 21:14:54 | 显示全部楼层
没给出指针变量a,b的值,scanf怎么知道往哪里存放获取的数值呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 21:25:18 | 显示全部楼层
【scanf("%d,%d",a,b);//此处若新建变量q,w然后a=&q,n=&w程序就不报错。】
int *a,*b;
a和b都是指针,你没有赋值它们这向的地址是随机分配的,编译的时候会有警告,
程序执行的时候也会报错,有些地址空间是不可写的等情况!
【新建变量q,w然后a=&q,n=&w程序就不报错。】
你是给a、b它们赋值了,它们有正确的地址指向就不会报错了!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 23:18:16 | 显示全部楼层
野指针。 C语言程序设计第63页。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-5 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表