c++对const增强 和cosnt分配内存情况
生活随笔
收集整理的這篇文章主要介紹了
c++对const增强 和cosnt分配内存情况
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
const增強(qiáng)
c語言中const是偽常量,可以通過指針修改
c++中const會(huì)放到符號(hào)表中
c語言中const默認(rèn)是外部連接,c++中const默認(rèn)是內(nèi)部鏈接
#include<iostream> using namespace std;const int m_a = 10; //在全局區(qū)域里,受到保護(hù),不可以被更改 /*c語言中,const修飾的變量,是偽常量,編譯器是會(huì)分配內(nèi)存的、c++中,const不會(huì)分配內(nèi)存,const int m_B=20;*/void test07(){//m_a = 100; 不允許被修改const int m_B = 20;//m_B = 100; 不允許被修改int *p = (int *)&m_B;//*p指向的是臨時(shí)的那塊空間,臨時(shí)空間看不到,臨時(shí)的空間被更改,但m_B沒有被改*p = 200;printf("*p=%d,m_B=%d\n", *p, m_B);//c中*p 和m_B都是200//c++中m_B為20,沒有被更改} int main(){test07();system("pause");}const分配內(nèi)存情況
對(duì)變量取地址,會(huì)分配臨時(shí)內(nèi)存
extern關(guān)鍵字下的const會(huì)分配內(nèi)存
用普通變量初始化cosnt變量
自定義數(shù)據(jù)類型會(huì)分配內(nèi)存
#include<iostream>#include<string>using namespace std;//1.const分配內(nèi)存,取地址會(huì)分配臨時(shí)內(nèi)存//2.extern 編譯器也會(huì)給const 變量分配內(nèi)存void test01(){const int m_A = 10;int *p = (int *)&m_A;//會(huì)分配臨時(shí)內(nèi)存}//3.用變量初始化const的變量void test02(){int a = 10;const int b = a;//會(huì)分配內(nèi)存int *p = (int *)&b;*p = 1000;cout << "b= " << b << endl;}//4.自定義數(shù)據(jù)類型 加const也會(huì)分配內(nèi)存struct Person{string m_Name; //姓名int m_Age;};void test03(){const Person p1;//p1 m_Name = "aaa";Person *p = (Person*)&p1;p->m_Name = "德瑪西亞";(*p).m_Age = 18;cout << "姓名 " << p1.m_Name << "年齡 " << p1.m_Age << endl;}int main(){test03();system("pause");return 0;}總結(jié)
以上是生活随笔為你收集整理的c++对const增强 和cosnt分配内存情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使命召唤手游AN94配件怎么搭配
- 下一篇: 正则表达式的[] + 财富值39