爲了更加清楚的瞭解什麼是指針?咱們首先看下變量和內存的關係,當咱們定義了int a=10以後。至關於在內存之中找了塊4個字節大小的空間,而且存儲10,要想操做這塊空間,就經過a這個變量,實際操做的是這塊內存對應的地址編號,只是這個十六位進制的內存編號咱們不知道,因此使用變量操做。那咱們若是可以知道這塊空間的內存地址編號,咱們也能夠操做這塊空間。那又如何知道這個內存地址編號呢?這裏就要引入指針概念。咱們用指針保存一塊內存的地址編號,換句話能夠理解爲指針就是一個地址。html
首先咱們定義一個指針,格式 數據類型 *指針名;java
而後使用地址符&記錄一個變量的地址,好比記錄int a=10;這個變量a的地址,ios
上面咱們知道了指針的值,即對應這塊內存的地址編號,那如何操做這塊內存裏面的數據?經過解引用的方式,在指針p前面加個*就是取到這塊內存對應的數據 ,因此上面實例編程
固然,上面int *b; b = &a;兩句代碼能夠用如下代替數組
注意:app
在32位操做系統下,指針佔用4個字節,無論什麼類型的指針,64位下,佔用8個字節。函數
咱們將指向內存地址編號爲0的指針叫作空指針,主要用來初始化指針變量。而且空指針不容許訪問,由於0-255空間是由系統使用的。url
總結:const在前就是常量指針,指針在前就是指針常量,const後跟*表示值不可修改,const跟指針名錶示指針不可修改spa
前面咱們討論過如下案例操作系統
對於這種值傳遞不會影響實參,再看地址傳遞
總結:若是想修改實參就用地址傳遞,不想修改實參就用值傳遞,綜合案例冒泡排序
掃描 關注公衆號 java一號。更重要的是小猿願成爲你編程路上的一個朋友!
文章首發地址: www.javayihao.top
首發公衆號: java一號