1. 程式人生 > 其它 >2021-01-24//指標

2021-01-24//指標

技術標籤:自學打卡c++

題外話:懂了懂了 大家週末都在偷偷學習呢~
在這裡插入圖片描述

指標

指標就是一個地址
p是int *資料型別

  • 指標的定義以及使用
    //1.指標的定義
    int a=10;
    //資料型別 * 變數名
    int * p;
    //指標變數賦值
    p=&a;
    //2.指標的使用
    //*操作 解引用 ;*操作 指標變數指向的記憶體
    cout<<"*p="<<*p<<endl;
  • 指標所佔用的記憶體空間
    規定:在32位作業系統下,指標佔用的是4位元組記憶體;64位下,佔用8個位元組空間
    sizeof§或者sizeof(int *)
//3.指標所佔用的記憶體空間
    int b=10;
    int * t=&b;
    cout<<sizeof(int *)<<endl;
    cout<<sizeof(double *)<<endl;
    cout<<sizeof(float *)<<endl;

//64位 結果都為8

  • 空指標和野指標
    空指標
    定義:指標變數指向記憶體中編號為0的空間
    用途:初始化指標變數
    注意:空指標指向的記憶體是不可以訪問的
    野指標
    定義:指標變數指向非法的記憶體空間
    //4.空指標
    //初始化 新設一指標,不知道指哪 指向NULL
    int * r=NULL;
    //空指標不可以進行訪問 0-255之間的記憶體編號是系統佔用的 不可訪問
    //cout *p出錯
    //5.野指標
    // int * w=(int *)0x1100;//指標指向一段記憶體空間,我也不知這記憶體空間是什麼
    // cout <<*w<<endl;
    //崩了!!
  • const修飾指標
    //6.const修飾指標
    //6.1 const修飾指標
    //6.1 常量指標 指標的指向可以修改;指標指向的值不可以修改
    const int * p=&a;
    // 錯誤 *p=20;指標指向的值不可以修改
    p=&b; 
    //6.2 指標常量 指標的指向不可以改;指標指向的值不可以改
    int * const p=&a;
    *p=20;
    // 錯誤 p=&b;     
    //6.3 指標的指向和指標指向的值都不可以修改
    const int * const p=&a;
    //錯誤 *p=20;
    // 錯誤 p=&b;