文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>栈再次理解

栈再次理解

时间:2010-08-14  来源:harryxiyou

不好意思,还有一个补充:
代码如下:
#include <stdio.h>

void a()
{
    int i;
    int j;

    printf( "i's address is %p\n", &i );
    printf( "j's address is %p\n", &j );
}

void b()
{
    int x;
    int y;

    printf( "x's address is %p\n", &x );
    printf( "y's address is %p\n", &y );

}

int main( void )
{
    a();
    b();
    return( 0 );
}


输出为:
i's address is 0xbfc8bd24
j's address is 0xbfc8bd20
x's address is 0xbfc8bd24
y's address is 0xbfc8bd20
提高内存利用率,一个调用完,调另一个。

大家好:
      有这样一个问题和我想象的不一样,问题如下:
代码:
#include <stdio.h>

int main( void )
{
    int i;
    int j;
    int a[10];

    printf( "i's address is %p\n", &i );
    printf( "j's address is %p\n", &j );
    printf( "a's address is %p\n", a );

    for( i = 0; i < 10; i++ )
    {
        printf( "a[%d]'s address is %p\n", i, &a[i] );
    }

    return( 0 );
}


输出如下:
i's address is 0xbfa76f60
j's address is 0xbfa76f5c
a's address is 0xbfa76f34
a[0]'s address is 0xbfa76f34
a[1]'s address is 0xbfa76f38
a[2]'s address is 0xbfa76f3c
a[3]'s address is 0xbfa76f40
a[4]'s address is 0xbfa76f44
a[5]'s address is 0xbfa76f48
a[6]'s address is 0xbfa76f4c
a[7]'s address is 0xbfa76f50
a[8]'s address is 0xbfa76f54
a[9]'s address is 0xbfa76f58

我想的是a[0]的地址应该是0xbfa76f58,a[1] 的是0xbfa76f54,。。。。。,但是事实上不是这样刚好相反。是不是进入栈中的顺序是a[10]先进,然后依次进入,还是和编译器有关系,请大家互相讨论,各抒己见,我学习一下,哈哈,谢谢。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载