| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 622 人关注过本帖
标题:有谁可以解释一下下面代码的结果为什么是那样的呢?
取消只看楼主 加入收藏
小笑孩
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-24
收藏
 问题点数:0 回复次数:2 
有谁可以解释一下下面代码的结果为什么是那样的呢?
老师说跟 堆 栈 有关
#include <stdio.h>
#include <stdlib.h>
typedef struct student{
    int number;   //学号
    int age;      //年龄
} student;
student * getStudent(){
    student stu;
    stu.age = 100;   //年龄默认初始为岁
    stu.number = 100; //学号默认初始为号
    return &stu;
}

结果是:student 100 is 100.
student 4241459 is 4325404.
为什么第二个是那样的呢???
void main(){    
    student * ptr = getStudent();    
    int age = ptr->age, number = ptr->number;
    printf("student %d is %d .\n",number,age);
    age = ptr->age, number = ptr->number;
    printf("student %d is %d .\n",number, age);
}
搜索更多相关主题的帖子: 代码 结果 解释 
2008-09-08 14:52
小笑孩
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-24
收藏
得分:0 
没,我是第一次,可能是我同学吧,可以把那个地址给我吗?我看一下你的解释
2008-09-08 15:02
小笑孩
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-24
收藏
得分:0 
是不是释放后,在运行原来的那段代码,结果都是随机的呢?
2008-09-08 15:14
快速回复:有谁可以解释一下下面代码的结果为什么是那样的呢?
数据加载中...
 
   



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

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