日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言指针知识点小结

發布時間:2024/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言指针知识点小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前期回顧

??C語言指針基礎知識點(一)–指針及指針變量
??C語言指針基礎知識點(二)–指針變量的引用
??C語言指針基礎知識點(三)–指針變量作為函數參數
??C語言指針基礎知識點(四)–通過指針引用數組
??C語言指針基礎知識點(五)–用數組名作函數參數
??C語言指針基礎知識點(六)–通過指針引用多維數組
??C語言指針基礎知識點(七)–通過指針引用字符串
??C語言指針基礎知識點(八)–返回指針值的函數
??C語言指針基礎知識點(九)–指針數組和多重指針
??C語言指針基礎知識點(十)–動態內存分配與指向它的指針變量

指針小結

1. 指針的含義

??指針就是地址,凡是出現"指針"的地方,都可以用"地址"代替,例如,變量的指針就是變量的地址,指針變量就是地址變量。

??要區分指針和指針變量。指針就是地址本身,例如2008是某一變量的地址,2008就是變量的指針。而指針變量是用來存放地址的變量。指針變量的值是一個地址

2. 什么叫"指向"

??地址就意味著指向,因為通過地址能找到具有該地址的對象。對于指針變量來說,把誰的地址存放在指針變量中,就說此指針變量指向誰。但應注意:并不是任何類型數據的地址都可以存放在同一個指針變量中的,只有與指針變量的基類型相同的數據的地址才能存放在相應的指針變量中。例如:

int a, *p; // p是 int * 型的指針變量,基類型是 int 型 float b; p=&a; // a 是 int 型,合法 p=&b; // b 是 float 型,類型不匹配

??既然許多數據對象(如變量、數組、字符串、函數等)都在內存中被分配存儲空間,就有了地址,也就有了指針。可以定義一些指針變量,存放這些數據對象的地址,即指向這些對象。

??void * 指針是一種特殊的指針,不指向任何類型的數據,如果需要用此地址指向某類型的數據,應先對地址進行類型轉換。顯示或隱示的類型轉換。

3. 在對數組的操作中正確地使用指針

一維數組名代表數組首元素的地址,如:

int *p, a[10]; p=a;

??p是指向 int 型類型的指針變量,顯然,p 只能指向 a 數組中的元素,而不是指向整個數組。在進行賦值時一定要先確定賦值號兩側的類型是否相同,是否允許賦值。

對p = a;, 準確地說應該是:p 指向 a 數組的首元素,在不引起誤解的情況下,有時也簡稱為:p指向a 數組。 同理,p 指向字符串,應理解為 p 指向字符串中的首字符

4. 指針變量的歸納比較

變量定義類型表示含義
int *p[4]int *[4]定義指針數組p,它由4個指向整型數據的指針元素組成
int (*p)[4]int (*)[4]p為指向包含4個元素的一維數組的指針變量
int *p()int *()p為返回一個指針的函數,該指針指向整型數據
int (*p)()int (*)()p為指向函數的指針,該函數返回一個整型值
int **pint **p是一個指針變量,它指向一個指向整型數據的指針變量
void *pvoid *p是一個指針變量,其基類型為 void,不指向具體的對象

5. 指針運算

a. 指針變量加減一個整數

??例如: p++, p- -, p+i, p-i, p+=i, p-=i 等均是指針變量加(減)一個整數。
??將該指針變量的原值和它指向的變量所占用的存儲單元的字節數相加(減)

b. 指針變量賦值

將一個變量地址賦給一個指針變量。如:

p=&a; // 將變量a的地址賦值給p p=array; // 將數組array首元素的地址賦給p p=&array[i]; // 將數組 array 第 i 個元素的地址賦給p p=max(); // max為已定義的函數,將max的入口地址賦給p pa=p2; // p1和p2是基類型相同的指針變量,將p2的值賦給p1

c. 兩個指針變量可以相減

??如果兩個指針變量都指向同一個數組中的元素,則兩個指針變量值之差是兩個指針之間的元素個數。

d. 兩個指針變量比較

若兩個指針變量指向同一個數組中的元素,則可以進行比較。指向前面的元素的指針變量"小于"指向后面元素的指針變量。如果 p1 和 p2 不指向同一數組則比較無意義。

6. 指針變量可以有空值

指針變量可以不指向任何變量,可以這樣表示:

p=NULL;

其中,NULL是一個符號常量,代表整數0。在stdio.h頭文件中對NULL進行了定義:

# define NULL 0

它使p指向地址為0的單元。系統保證使該單元不作他用。

注意:

  • 不應把一個整數賦給指針變量
  • p的值為 NULL 與未對 p 賦值是兩個不同的概念。
  • 任何指針變量或地址都可以與NULL作相等或不相等的比較,例如: if (p==NULL)
  • 總結

    以上是生活随笔為你收集整理的C语言指针知识点小结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。