| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 518 人关注过本帖
标题:指针的输出
取消只看楼主 加入收藏
Easom
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
指针的输出
#include <stdio.h>
int main()
{
    int *p;
    int *q;
    *p=6;
    *q=8;
    printf("%d\t",*p);
    printf("%d",*q);
    return 0;
}

为什么我这样编译,编译器没提示错误,可是一旦运行,就运行不了?[local]1[/local]


之后想,这难道也要分配内存?

#include <stdio.h>
#include <stdlib.h>
int main()
{

    int *p;
    int *q;
    p=(int *)malloc(sizeof(int));
    p=(int *)malloc(sizeof(int));
    *p=6;
    *q=8;
   
    printf("%d\t",*p);
    printf("%d",*q);
    free(p);
    free(q);
    return 0;
}
还是一样
[local]2[/local]

[ 本帖最后由 Easom 于 2015-5-26 14:44 编辑 ]
搜索更多相关主题的帖子: include return 编译器 
2015-05-26 14:43
Easom
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-26
收藏
得分:0 
回复 2楼 wp231957
额。。。对耶


那再问下,为什么输出一个时,不用分配,输出两个却用呢?
2015-05-26 14:57
Easom
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-26
收藏
得分:0 
回复 4楼 wp231957
恩,可这样我编译得出,能输出6
2015-05-26 15:03
Easom
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-26
收藏
得分:0 
回复 7楼 embed_xuel
第一个 p和a的地址一样,就p指向a的地址,而当*p=6,只是改变地址中的内容,之后最后输出都为6  (叙述应该没问题吧。。)


第二个 a不是还没定义么。。


想知道为什么一个时可以输出?我知道两个时不能,因为他们是“野生的”,但一个是,不是也是“野生的”吗?


谢谢
2015-05-26 15:23
Easom
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-26
收藏
得分:0 
回复 9楼 wp231957
好吧。。智能的编译器
2015-05-26 15:29
Easom
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-26
收藏
得分:0 
额。。。谢谢大家了

一个不能编译出觉得应该是

因为指向的位置是 unexcepted的,大多数时候不能访问的,而那里碰巧允许访问了,,所以我编译得出
2015-05-26 15:42
快速回复:指针的输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012456 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved