C 語言----- 指標

來源:互聯網
上載者:User

標籤:空間名   取出   何事   北京   計算   操作   和我   變數   開發商   

  指標是一個值為記憶體位址的變數, 指標的核心是它是一個變數, 只不過它是用來存放記憶體位址的。在瞭解指標之前,先說一下什麼是變數。變數就是在記憶體中開闢的一個空間。如int year, 就是在記憶體中開闢了一個空間,空間名稱為year, 開闢空間做什麼呢?肯定是存放程式運行中所需要的東西,在電腦語言中,存放東西就是賦值。year= 2018, 給year賦值,就是在year這個空間存放一個整數2018; 開闢了空間,也存放了數值,那我們要使用這個空間中的東西怎麼辦?我們怎樣才能找到這個空間?當然,最簡單的辦法,是直接使用名稱year, 其實還有一種辦法,就是找到這個空間的地址,找到地址後,我們就可以做任何事情了。記憶體在開闢空間的時候,它自動就會有一個地址,這個地址就是記憶體位址,這和我們日常生活也是一樣的道理。比如開發商拿了一塊地,它就相當於開闢了空間。拿地的同時,也就是開闢空間的時候,它自動會有一個地址,他在廣東省拿的地,地址肯定是廣東省,而不是北京,並且地址也不會再發生變化。只不過地址描述方式不同,在現實生活中,它是廣東省深市圳,而在電腦中,它是一個十六進位的數字發, oXc522;

  每一個變數都有地址,我們想要操作這個地址,就要把地址擷取到並儲存起來,儲存東西就是用 變數, 這個變數儲存記憶體位址,所以起了個名字就是指標。指標的變數的聲明也不一樣,用* 聲明。 int *point_year.  怎麼擷取變數地址用&  &year 就取得了year記憶體位址, 那麼它就可賦值組point_year 變數。 point_year = &year,  point_year 儲存的是year的記憶體位址,所以也可以稱之為point_year 指向了year.   在這裡有一個特數的常量,NULL, 表示為空白, 如point_year = NULL, 表示指標不指向任何地址。

當* 作為運算子的時候,叫做取地址所對應的值,所以它只能放在指標變數的前面, 取出地址所指向的值,那就是變數。*point_year 的值就是變數year.  *point_year = 10; 其實就是對量year賦值。

   指標變數也是變數,所以它也有地址,&point_year 就是取指標變數對應的地址。它是一個地址,所以還要聲明一個指標變數 int *ptr_ptr_year = &point_year.  那麼我們*運算子也是可以取地址*ptr_ptr_year返回的是point_year, 然而它也是一個指標變數,*point_year 才是指向的變數。**ptr_ptr_year 批向了year,  **ptr_ptr_year = 10, 同樣是給它變數year賦值。

C 語言----- 指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.