鱼C论坛

 找回密码
 立即注册
查看: 1937|回复: 5

指针问题,求大佬解决。

[复制链接]
发表于 2018-10-31 11:18:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>

int main()
{
        int *ap, *bp, temp, m1, m2;        //输入两个数,从大到小打印出来。
        scanf("%d%d", &m1, &m2 );
        ap = &m1;
        bp = &m2;
        if ( m1 < m2 )                        //                int *temp;
        {                                                //                *temp = *bp;
        temp = *bp;                                //                *bp = *ap;
        *bp = *ap;                                //                *ap = *temp;
        *ap = temp;                                //
        }
        printf("%d,%d", *ap, *bp );
        system("pause");
        return 0;
        }

为什么像注释里这样把指针变量当作中间值进行转换 结果不正确呢?麻烦解释的通俗点,谢谢了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-31 11:49:13 | 显示全部楼层
temp 指向谁?野指针,看编译器,如果没有初始化的指针通常会指向空,空指针不能解引用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-31 12:32:54 | 显示全部楼层
附议楼上,而且注释里面temp那个指针没有指向合法的安全的可访问的数据空间。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-31 13:03:22 | 显示全部楼层
claws0n 发表于 2018-10-31 11:49
temp 指向谁?野指针,看编译器,如果没有初始化的指针通常会指向空,空指针不能解引用

那也就是说野指针一般不能引用对吧,应该先让他指明一个地址然后引用是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-31 13:14:40 | 显示全部楼层
otottfyx 发表于 2018-10-31 13:03
那也就是说野指针一般不能引用对吧,应该先让他指明一个地址然后引用是吗?

野指针可以解引用,但后果自负。空指针解引用的话会退出程序或者执行错误。
嗯,可以,但是你不如直接开个临时变量 int temp 就好?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-31 13:18:25 | 显示全部楼层
claws0n 发表于 2018-10-31 13:14
野指针可以解引用,但后果自负。空指针解引用的话会退出程序或者执行错误。
嗯,可以,但是你不如直接开 ...

嗯,我懂了。谢谢你。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-30 16:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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