1.7 c之 指針

指針

  • *P表明指針變量P所指的那個變量,也就是變量a。
  • 爲何須要指針?
    指針存在的目的就是間接訪問。有了指針以後,咱們訪問變量a沒必要只經過a這個變量名來訪問。而能夠經過p = &a; *p = xxx這樣的方式來間接訪問變量a。
  • 兩個重要的運算符: &和*
  • 指針的定和初始化
    指針既然是一種變量,那麼確定也能夠定義和初始化
    第一種:先定義再賦值
    int p; //定義指針變量p
    p = &a; //給p賦值
    第二種:定義的同時初始化
    int
    p = &a; //效果等同於上面的兩句
    使用指針的時候,*P則表明指針變量P所指向的那個變量。數組

    int a = 23;
    int *p;ide

    P=&a;指針

    p = 111; 這裏至關於a = 111
    printf(「a = %d.\n」,a)
    :指針符號。指針符號在指針定義和指針操做的時候,解析方法是不一樣的。
    int P; 定義指針變量p,這裏p含義不是表明指針變量P所指向的那個指針變量,在定義時這裏的含義告訴編譯器P是一個指針。
    使用指針的時候,
    p則表明指針變量p所指向的那個變量。
    1.7 c之 指針
    指針全程是指針變量,其實質就是c語言的一種變量。這種變量比較特殊,一般他的值會被賦值爲某個變量的地址值( P = &a ),而後咱們可使用*p這樣的方式間接訪問p所指向的那個變量。blog

  • 指針變量本質上是一個變量,指針變量的類型屬於指針類型
  • 指針與數組的初次結合
    數組名:作右值時,數組名錶示數組的首元素地址,所以能夠直接複製給指針。
    若是有 int a[5];
    則 a和&a[0]都表示數組元素a[0]的首地址。
    而&a則表示數組的首地址。
    注意:數組首元素的首地址和數組的首地址是不一樣的。前者是數組元素的地址,後者是數組總體的地址。兩個東西的含義不一樣,但數值上是相同的。根據以上,咱們知道能夠用一個指針指向數組的第一個元素,這樣就能夠用間接訪問的方式去逐個訪問數組中各個與元素,這樣訪問數組就有了兩種方式。
    好比:int a[5]; int p; p = a;
    數組的方式依次訪問: a[0] a[1] a[2] a[3] a[4]
    指針的方式依次訪問:
    p (p+1)(p+2) (p+3) (p+4)
  • 指針與++ --符號進行運算。
    指針自己也是一種變量,所以也能夠進行運算。可是由於指針變量自己存的是某個其餘變量的地址值,所以該值進行* / % 等運算是無心義的。指針變量+1,-1是用意義的,兩個指針變量相減是有意義的。+1就表明指針指向的格子向後挪一格,-1表明指針所指向的格子向前挪一格。
    1.7 c之 指針
相關文章
相關標籤/搜索