C/C++中const char *变量的内存布局位置
来源:互联网 发布:js 设置select 选中值 编辑:程序博客网 时间:2024/05/17 06:52
const char *是一个比较特殊的指针类型,在函数中通过该类型定义的字符串变量存储在全局内存区,
而不是作为临时栈变量存储。可以通过下面的代码进行验证。
/* * ===================================================================================== * * Filename: test.cpp * * Description: * * Version: 1.0 * Created: 2013年06月14日 11时30分46秒 * Revision: none * Compiler: gcc * * Author: YOUR NAME (), * Organization: * * ===================================================================================== */#include <cstdlib>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>using namespace std;const char * GetLocalChar();int main(){cout<<GetLocalChar()<<endl;return 0;}const char * GetLocalChar(){printf("GetLocalChar start address = %p\n ",&GetLocalChar);const char * cpLocal="luoxiongwei";printf("cpLocal address = %p\n ",cpLocal);int n=0;printf("n address = %p\n ",&n);return cpLocal;}
执行结果如下:
从执行结果可见GetLocalChar起始地址0x8048749位于代码段,在低地址。
cpLocal const char *起始地址0x80488e2,位于初始化的全局变量段,相比GetLocalChar地址
稍高。而n这个变量的地址是0xbfae8258,位于高地址,程序栈区。
从结果可以看出,const char * 的变量确实位于全局变量区。
- C/C++中const char *变量的内存布局位置
- gcc中const变量的内存位置
- C语言中变量内存布局
- 修改C中const修饰的变量
- C语言中变量定义的位置
- C/C++中 变量的存储位置
- c语言中变量的存储位置
- C/C++中 变量的存储位置
- C/C++中变量的存储位置
- C语言中变量定义的位置
- C/C++中变量的存储位置
- C/C++中 变量的存储位置
- C/C++中 变量的存储位置
- c中各个变量存储的位置
- C语言中const char* 和char* const等常量的正确理解
- C和C++的内存操作小贴士(一):const char*的内存释放问题
- linux中C程序的内存布局
- C的内存布局
- AJAX建立和服务器连接,接收服务器技术处理服务器返回的数据
- C++中struct和class的区别
- 一些经验总结
- qt获取电脑的屏幕坐标
- 【转载】linux中误删除oracle数据文件的恢复操作
- C/C++中const char *变量的内存布局位置
- 安装 Cassandra 服务,使用命令行进行key操作,很简单
- chrome 下 php setcookie domain设置为localhost 或 127.0.0.1 取不到值
- makefile(四)
- oracle number(p,s)
- ajax 动态级联
- 二维数组作为函数参数
- Oracle 直方图
- DEDE5.3.1织梦 处理 关键字不能小于2个字节