c++对c的扩展----什么时候分配内存
const分配内存的时机,编译器编译的时候分配内存
const相当于宏,用来取代c语言的#define
#include<iostream>
using namespace std;
void main()
{
int a = ;
const int b = ;
const int d = ;
int c = ;
//int array[a+c] linux gcc编译器支持
//int array[b+d] linux gcc编译器支持
printf("变量a,b,c的地址分别为%d %d %d\n",&a,&b,&c);
system("pause");
}
作用域和变量类型检测
#include<iostream>
using namespace std;
void func1()
{
#define a 5
const int b = ;
string name = "陈培昌";
int age = ;
}
void func2()
{
printf("a的值是%d",a);
}
void main()
{
func1();
func2();
system("pause");
}

纳尼~居然func2能访问func1中的常量!!!,如果我们禁止这类访问可以这样
#include<iostream>
using namespace std;
void func1()
{
#define a 5
const int b = ;
string name = "陈培昌";
int age = ;
#undef a
}
void func2()
{
printf("a的值是%d\n",a);
}
void main()
{
func1();
func2();
system("pause");
}

然而const类型则无法访问,说明const是严格限制作用域范围的

c++对c的扩展----什么时候分配内存的更多相关文章
- PHP扩展-生命周期和内存管理
1. PHP源码结构 PHP的内核子系统有两个,ZE(Zend Engine)和PHP Core.ZE负责将PHP脚本解析成机器码(也成为token符)后,在进程空间执行这些机器码:ZE还负责内存管理 ...
- delphi 给字符指针分配内存
今天,对接第三方dll的时候出现如下问题: 接口声明如下: long BL_tradeBalance (char *MerchantNumber,char *PosId,char *OperatorN ...
- @清晰掉 malloc是如何分配内存的?
任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至 ...
- 在dll里malloc/new/cvCreate分配内存,在exe里free/Releases释放内存时会出错。
写了个程序,在DLL中用malloc分配了一块内存,但是在exe程序中释放,结果程序crash,原因就是:其原因可能是堆被损坏,这也说明 TestMySticker.exe 中或它所加载的任何 DLL ...
- C/C++二维数组分配内存
//C++方式 double **Q=new double*[row]; //初始化Q矩阵 for(int i=0;i<row;++i) Q[i]=new double[POS_NUM]( ...
- DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?
DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?比如我定义个变量 var p:Pchar;如果这个变量声明为全局变量,需要分配内存吗?分配为局部变量,需要分为内存吗?为什么 ...
- C语言 malloc calloc realloc alloc 在分配内存时的 区别
malloc : 向堆申请分配内存,不初始化 calloc : 向堆申请分配内存,初始化为0 realloc: 向堆申请分配内存,可调整大小 alloc : 向栈申请内存,不需手动释放
- du: fts_read 失败: 无法分配内存
今天在查看一个大的文件时突然报出一个du: fts_read 失败: 无法分配内存的错误. 用 ulimit -a 查看下 core file size (blocks, -c) 0 data seg ...
- linux设备驱动归纳总结(五):1.在内核空间分配内存【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-79134.html linux设备驱动归纳总结(五):1.在内核空间分配内存 xxxxxxxxxxxx ...
随机推荐
- zabbix 批量添加web场景监控
公司有大量测试环境的url需要监控是否能够访问,即url状态不为200即报警.状态为200即正常.因url比较多,且经常发生改变,如通过web场景配置(我没配过)会比较繁琐,工作量比较大.通过网上查找 ...
- 第二坑:Linux发布项目
在这里踩过两个坑: 1.第一个是上传文件的时候,不知道是什么原因,上传失败了,然后发布新版本的时候,依然用的上个版本的包,导致工作出现重大失误. 谨记:上传文件的时候,检查一下上传文件和本地文件的时间 ...
- setting中executable for debug session对话框
- pandas数据结构之基础运算笔记
import pandas as pd import numpy as np s = pd.Series([1,3,5,6,8],index=list('acefh')) s.index # 读取行索 ...
- 更改CodeBlocks注释的颜色
- 利用sort对结构体进行排序
我定义了一个学生类型的结构体来演示sort排序对结构体排序的用法 具体用法看代码 #include<iostream> #include<string> #include< ...
- k8s基础环境搭建
环境准备 服务器之间时间同步 1. 关闭防火墙 systemctl stop firewalld setenforce 0 2. 设置yum源 三台机器都要设置一个master两个node节点 下 ...
- ASM实例远程连接
存在一个软件,远程连接ASM实例 tj2:/picclife/app/grid$ lsnrctl status Listening Endpoints Summary... (DESCRIPTION= ...
- C#类型转换工具类
using System; namespace Com.AppCode.Extend { public static partial class Ext { #region 数值转换 /// < ...
- (十二)Activitivi5之流程控制网关:排他
一.概念 所谓排他网关 顾名思义 执行到该网关,根据条件只能走一条执行线 二.案例 当流程走到“学生请假”任务节点的时候, /** * 完成任务 */ @Test public void test_c ...