| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 288 人关注过本帖
标题:关于函数里面数据存储问题,请前辈不吝赐教
只看楼主 加入收藏
ourselves
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于函数里面数据存储问题,请前辈不吝赐教
#include<stdio.h>
#define SIZE 4
int main(void)
{
    //short dates[SIZE];
    double bills[SIZE];
    short dates[SIZE];
    short *pti;
    short index;
    //double bills[SIZE];
    double *ptf;
    pti=dates;
    ptf=bills;
    printf("%23s %10s\n","short","double");
    for(index=0;index<SIZE;index++)
        printf("pointers+%d: %10p %10p\n",index,pti+index,ptf+index);
    return 0;
}
运行结果:
                  short     double
pointers+0:   0012FF20   0012FF28
pointers+1:   0012FF22   0012FF30
pointers+2:   0012FF24   0012FF38
pointers+3:   0012FF26   0012FF40
然后把函数里面的两个数组顺序变一下:
double bills[SIZE];
short dates[SIZE];
变为:
short dates[SIZE];
double bills[SIZE];
然后输出结果变为:
                  short     double
pointers+0:   0012FF40   0012FF20
pointers+1:   0012FF42   0012FF28
pointers+2:   0012FF44   0012FF30
pointers+3:   0012FF46   0012FF38
小弟想请问一下各位前辈,关于函数里面的变量和数据是怎么存储的,不是按照栈(后进先出)的顺序吗?最先进去的不是在最底层的吗?请各位高手不吝赐教,小弟感激不尽。。
搜索更多相关主题的帖子: return include 存储 double 
2012-10-23 22:32
万光海
Rank: 3Rank: 3
来 自:桂林
等 级:论坛游侠
帖 子:92
专家分:133
注 册:2012-10-21
收藏
得分:10 
存储地址是会变化的,这的看内存空出那一块地址咯
2012-10-24 21:36
lg65458839
Rank: 2
等 级:论坛游民
帖 子:5
专家分:34
注 册:2012-10-23
收藏
得分:10 
数组的内存分配就是一连续的内存块,每次分配时,内存管理程序会选择最适合当前数组的地址块。
上面两个数组datas和bills起始地址并没有什么相关性,完全取决于当前可用内存的分布
2012-10-24 22:06
快速回复:关于函数里面数据存储问题,请前辈不吝赐教
数据加载中...
 
   



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

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