| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 496 人关注过本帖
标题:请问这段程序中哪些变量是动态存储方式?哪些是静态存储方式?
只看楼主 加入收藏
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
结帖率:62.5%
收藏
已结贴  问题点数:10 回复次数:7 
请问这段程序中哪些变量是动态存储方式?哪些是静态存储方式?
#include<stdio.h>
void main()
{
    int max(int x, int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("Max is %d\n",c);
}
int max(int x,int y)
{
    int z;
    z=x>y?x:y;
    return(z);
}

是不是以上所有的变量都是以动态存储方式存储的?是不是一般一个程序中除了全局变量,以及用static声明的变量其他变量一般都是以动态存储方式存储?
是不是动态存储方式的变量意味着调用它的时候占用内存,不调用时不占内存呢?

[ 本帖最后由 killah 于 2013-3-3 16:27 编辑 ]
搜索更多相关主题的帖子: 存储 return 动态 
2013-03-03 16:25
yangqiandbcc
Rank: 2
等 级:论坛游民
帖 子:7
专家分:17
注 册:2013-3-3
收藏
得分:0 
似乎只有动态,在主函数内部,默认为动态auto
2013-03-03 16:44
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 2楼 yangqiandbcc
是不是这些动态存储类型的变量在调用前都不占内存,调用时占内存,调用后内存被回收呢?(动态存储类型的变量是不是就和形参的内存分配方法是一样的啊?)
2013-03-03 17:22
yangqiandbcc
Rank: 2
等 级:论坛游民
帖 子:7
专家分:17
注 册:2013-3-3
收藏
得分:10 
嗯,动态变量只有在使用时才分配存储单元,函数调用后存储单元会被释放
形参也是在被调用时才会分配储存单元的,但是形参的数值的改变对实参不起作用
话说你没有书吗?
2013-03-03 17:35
driftsand
Rank: 2
等 级:论坛游民
帖 子:25
专家分:85
注 册:2011-12-21
收藏
得分:0 
建议楼主认真学习一下C Primer Plus第12章 存储类、链接和内存管理,相信一切就明白了。

Don't tell lies because those who believe your lies are the ones who believe in you.
2013-03-03 17:40
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 4楼 yangqiandbcc
谢谢~
2013-03-03 18:11
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 5楼 driftsand
谢谢你的建议,我如果以后接触C比较多的话会买本来好好看看的
2013-03-03 18:11
编程新手007
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2013-2-28
收藏
得分:0 
static int a; 定义的变量才是 静态的,静态 变量 在函数结束时候 保持 值 ,

动态的是自己 分配的, (int *)malloc (sizeof (int)); 返回一个 整型 动态地址

呵呵,~~~一般 的默认都是那个auto ,自动好像~~~
2013-03-03 19:42
快速回复:请问这段程序中哪些变量是动态存储方式?哪些是静态存储方式?
数据加载中...
 
   



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

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