| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:自动变量指针
只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:5 回复次数:8 
自动变量指针
void set_mode(int mode, int *p_present_mode)
{
 if (mode==METRIC || mode==US)
  *p_present_mode = mode;
 else
  printf("Invalid mode specified. Mode %s used.\n", *p_present_mode == METRIC? "0(METRIC)" : "1(US)");
}
看上面的函数,不用管这个函数是干什么用的.我就是想知道p_present_mode是否为一个自动变量,如果不是的话,它属于哪种储存类.如果是的话我想知道,因为自动变量的作用域(假设在一个函数中定义)是从定义处到函数末尾或代码块末尾,
那这个函数中的p_present_mode 变量是否会在函数执行结束后释放内存,其储存在变量中的值还在不在.
求详细
搜索更多相关主题的帖子: specified 干什么 内存 
2011-08-22 15:32
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
也就是说指针变量(包括全局和代码块中)会自动释放内存吗.
一个在函数中声明的指针变量,能够不通过其他任何函数调用,直接在另一个函数中使用吗?
2011-08-22 15:44
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:5 
没听说过“自动变量”
p_present_mode 只不过是个正型指针变量罢了。
set_mode() 执行结束后 p_present_mode 所占用的内存就被释放了。
2011-08-22 16:37
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
讲错了是自动储存类
2011-08-22 16:40
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
同样没有听过 “自动储存类”
2011-08-22 17:05
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
是寄存器变量吧

                                         
===========深入<----------------->浅出============
2011-08-22 18:11
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
局部自动变量:作用域只在set_mode函数内,函数调用完之后会被弹出栈,至于他的值是否还存在还要看之后有没有push过,所以应该是不确定的。

My life is brilliant
2011-08-22 18:26
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 7楼 lz1091914999
函数的本地变量的值在函数返回后不会被保留。如下:
程序代码:
#include <stdio.h>

int * foo(int n) {
    return &n;
}

int main(int argc, char* argv[]) {
    int n = 123, * m = foo(n);
    printf("%x %x\n", &n, m);
    printf("%d %d", n, *m);
    return 0;
}
2011-08-22 20:10
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:0 
会自动释放,但指针指向的内容能随着函数里面对指针的操作而改变;实参把地址传给形参,改变形参指向的内容则实参指向的内容也改变了。

A real warrior never quits.
2011-08-22 20:26
快速回复:自动变量指针
数据加载中...
 
   



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

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