指針(初階)

指針(pointer)簡介

     指針是一個值爲內存地址的變量     

例如

      

                  int year;

                year = 2016;       

        定義一個整型變量,系統就給這個整個變量分配了一個內存空間,這個內存空間的名字叫做year,空間裏的值爲2016,內存在計算機中的地址爲0028FF44(計算機中的內存地址一般用16進製表示)。

                 int* ptr_year;       //ptr_year爲一個變量,可以把int*看作是一種數據類型,一種指向地址的數據類型

                  ptr_year=&year   // "&"爲取地址符,相當於把變量year的地址取出來賦給ptr_year這個變量,賦值時一定要用&取地址符,而不能使用常量進行直接賦值

           上圖即爲原理流程圖

基本用法:

             數據類型* 指針變量名;

 例如:

            int* ptr_year;

            char* ptr_name;

            float* ptr_score;

間接運算符 * 在聲明指針變量時和在對地址操作時的作用是不同的

           int num;                                 

          num = 1;                                //定義一個整型變量,並賦初值爲5

         int* ptr_num;                         //這個星號表示的是ptr_num是一個指針變量

         ptr_num = #                  //定義一個指針變量,指向num             num的值爲1


          *ptr_num = 1111;                    //把20賦值給*ptr_num地址所對應空間,  num的值變爲1111

                                

                 單獨一個*加上一個指針表示的是對這個指針所對應的的空間進行操作

注意:

指針的變量的命名規則和其他變量的命名規則一樣

指針不能與現有變量同名

指針可存放c語言中的任何基本數據類型,數組和其他所有高級數據結構的地址

若指針已聲明爲指向某種類型數據的地址   ,則它不能用於存儲其他類型數據的地址

應爲指針指定一個地址後,才能在語句中使用指針

在頭文件<stdio.h>中,NULL被定義爲常量

 int* pr_num = NULL;   //表示指針的初值爲空,表示指針不指向任何地址

指針變量必須初始化,否則不知道指向哪個地址。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章