1.總結(jié)指針

1.內(nèi)存四區(qū):
  堆區(qū):系統(tǒng)自動(dòng)開(kāi)辟,自動(dòng)釋放
  堆區(qū):程序員主動(dòng)開(kāi)辟主動(dòng)釋放
  全局區(qū):全局靜態(tài)變量
  代碼區(qū):保存代碼
  2.地址
  地址的具體含義為,例如小明住在21棟5樓東戶那么小明,這個(gè)地址為一個(gè)地址,而這個(gè)地址 里東西為值地址有以下特性,唯一,地址也是一種數(shù)據(jù)。
  首地址:為一個(gè)存儲(chǔ)序列的第一個(gè)地址
  3.指針變量:

#include <stdio.h>
  main()
  {
  int a = 111;
  int *p =&a;
  printf("a的值%d\n",a);
  printf("a的地址的值%d\n",&a);
  printf("指針變量pa的值%d\n",p);
  printf("pa指向的值%d\n",*p);
  }

作用:存儲(chǔ)地址。
  定義一個(gè)指針: int p=NULL; //其中q是一個(gè)變量,不要把p看做一個(gè)整體;其實(shí)p就是一個(gè)int* 的變量,可以這樣看 數(shù)據(jù)類型變量名,星號(hào)只能說(shuō)明這里是一個(gè)指針變量。
  野指針:定義一個(gè)指針沒(méi)有指向任何的地址,在指針進(jìn)行初始化時(shí)一定要賦值。
  4.指針的引用:
  指針變量自己的值:p;
  指針變量指向的值:
pa
  5.空指針:不確定類型的指針 void *
   malloc(4)//開(kāi)辟四個(gè)字節(jié)那么這個(gè)四個(gè)字節(jié)存放什么的?可以使 int unsigned int floa t型
  void可與強(qiáng)制轉(zhuǎn)換為其他任意的類型
   (int*)malloc(4)
  (float*)malloc(4)
  (char(*)[4]) malloc(4)
   如果給一個(gè)房子需要放東西,那么怎么把東西放到進(jìn)去,按四個(gè)字節(jié) 還是一個(gè)字節(jié)放,申請(qǐng)四個(gè)字節(jié)不一定是把這個(gè)內(nèi)存占滿,大的可以裝小的小的不可以裝大的
  6.指針的運(yùn)算
   指針的運(yùn)算其實(shí)就是地址的偏移,兩個(gè)地址之間的運(yùn)算是沒(méi)有任何意義的
就有這些運(yùn)算 ++ -- + - 這幾種格式

#include <stdio.h>
main()
{

    char a ;
    char *pa = &a;
    int b;
    int *pb=&b;
    int c[10];
    int(*pc)[10] = &c;

    printf("pa=%d\tpa+1=%d\n",pa,pa+1);
    printf("pb=%d\tpb+1=%d\n",pb,pb+1);
    printf("pc=%d\tpc+1=%d\n",pc,pc+1);

}


pa=1637199      pa+1=1637200
pb=1637172      pb+1=1637176
pc=1637112      pc+1=1637152
請(qǐng)按任意鍵繼續(xù). . .

7.一維數(shù)組與指針
&a是指向整個(gè)數(shù)組的指針
a是數(shù)組名:[數(shù)組名是這個(gè)數(shù)組的首地址]
int p1=a;
int(
pa)[5] = &a;//數(shù)組指針

a指向數(shù)組的第一個(gè)存儲(chǔ)單元 a[0]

訪問(wèn)數(shù)組元素
數(shù)組名:
*(a+m) //a[m]

8.二維數(shù)組與指針
arr[m][n] = (*(arr+m)+n)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容