日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++对const增强 和cosnt分配内存情况

發布時間:2023/11/30 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++对const增强 和cosnt分配内存情况 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

const增強

  • c語言中const是偽常量,可以通過指針修改

  • c++中const會放到符號表中

  • c語言中const默認是外部連接,c++中const默認是內部鏈接

    #include<iostream> using namespace std;const int m_a = 10; //在全局區域里,受到保護,不可以被更改 /*c語言中,const修飾的變量,是偽常量,編譯器是會分配內存的、c++中,const不會分配內存,const int m_B=20;*/void test07(){//m_a = 100; 不允許被修改const int m_B = 20;//m_B = 100; 不允許被修改int *p = (int *)&m_B;//*p指向的是臨時的那塊空間,臨時空間看不到,臨時的空間被更改,但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分配內存情況

  • 對變量取地址,會分配臨時內存

  • extern關鍵字下的const會分配內存

  • 用普通變量初始化cosnt變量

  • 自定義數據類型會分配內存

    #include<iostream>#include<string>using namespace std;//1.const分配內存,取地址會分配臨時內存//2.extern 編譯器也會給const 變量分配內存void test01(){const int m_A = 10;int *p = (int *)&m_A;//會分配臨時內存}//3.用變量初始化const的變量void test02(){int a = 10;const int b = a;//會分配內存int *p = (int *)&b;*p = 1000;cout << "b= " << b << endl;}//4.自定義數據類型 加const也會分配內存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;}
  • 總結

    以上是生活随笔為你收集整理的c++对const增强 和cosnt分配内存情况的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。