培訓第八天----指針

昨日回顧

if...else
數(shù)組:不允許越界訪問。
練習:
1.在數(shù)組中插入一個數(shù)據(jù)。
2.尋找素數(shù)并保存到數(shù)組中。
3.將數(shù)組倒置。

===================

一、數(shù)組

(1)二維數(shù)組

** 行數(shù)可以省略,列數(shù)不可省。**

二、指針

(1)指針類型是一種特殊類型

Datatype *name;    //一般使用形式。
Datatype* name;    //底層代碼使用較多。
Datatype * name;

*:表示這是一個指針變量。
name: 指針變量名。

指針和普通變量的區(qū)別:

指針 :存地址。
普通變量:存值。
指針只能保存與其相同類型的地址。

int *p:只能保存int型地址。
char *pc:只能保存char型地址。
double *pd:只能保存double型地址。

(2)初始化

例:

    int *p= Null;  //OK
    
    int a=3;
    int *pa= &a;   //OK
    
    int *pb;
    pb= &a;     //OK
    
    int *pc;
    *pc= &a;       //不允許!!

(3)地址的訪問

*:間接訪問運算符。

如:

int a = 10;
int *pb;
pb = &a;      //OK

例:

變量名     變量地址     值
a        0x000012   10
pb      0x000089    0x000012

*pb:取指針對應內(nèi)存里的值。

(4)可把指針變量賦值給同類型指針。

(5)不同類型的指針大小

32位機下指針大小為4。
64位機下指針大小為8。

(6)指針的類型和指針所指向的類型

例:

int *pa;
int* pa;
double *pb;

指針的類型:去掉變量名之后的部分,int
指針所指向的類型:去掉指針變量名和其前面的
,int。

(7)指針與數(shù)組

數(shù)組名是個地址。
數(shù)組元素的訪問:

int arr[5] = {0,1,2,3,4};
int *p =arr;

例:

arr[0];  arr[3];
*(arr);  *(arr+3);
*(p);    *(p+3);        //數(shù)組名也可以理解為一個指針
p[0];    p[3];

(8)野指針

未初始化,或其指向的內(nèi)存被釋放,而指針沒有被置空;
危害:造成系統(tǒng)資源的浪費,容易造成未知的致命錯誤。
常見,段錯誤

(9)指針地址的運算

指針的自增和自減
自增:向指針的高地址方向移動。
自減:向指針的低地址方向移動。
指針可互減,負號代表方向,表示兩指針之間的距離,低地址與高地址間的字節(jié)的距離。
指針相加沒有意義。
常量值×sizeof(對應數(shù)據(jù)類型)個字節(jié)!

(10)概念區(qū)分

例:

int buf[3]; //數(shù)組,大小為3,存放三個int型變量。
int *pa;       //指針,其類型為int *型。
int *arr[3];   //指針數(shù)組;優(yōu)先級看arr先和[]結(jié)合。數(shù)組里存著3個指針或地址。
int *(pa)[3];  //數(shù)組指針,又稱行指針;指針里存數(shù)組的地址。
int (*)[3] pa; //上式的另一種形式,更好理解,數(shù)據(jù)類型定義一個變量。

又例:

int arr[3][3] = {{11,12,13},{21,22,23}.{31,32,33}};
<===>  arr[3]  = {arr[3](1),arr[3](2),arr[3](3)}

矩陣為

    11  12  13
    21  22  23
    31  32  33

三、二級指針

格式

Datatype **PointorName; 

例:

int a = 10;
int *q = &a;
int **p = &q;

注:

*p = q;
**p = *q = a;

定義一個指針,或?qū)Φ刂愤M行操作時,一定要確定指針的指向。

排版耗時25分鐘。
疑問上課已提出,并解決。

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

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

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運用指針編程是C語言最主要的風格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評論 3 44
  • void* 類型指針:通用變體類型指針;可以不經(jīng)轉(zhuǎn)換,賦給其他指針,函數(shù)指針除外;malloc返回的就是void*...
    冰吉凌閱讀 3,527評論 0 18
  • 喜笑歡顏的背后,或許藏著別人不知道的悲傷。你看到的,并一定是真的。 悲哀的故事讓人震撼。 一個家庭有兩個兒...
    明月365閱讀 351評論 0 0
  • 金魚吸水出汽泡, 為人處事得牢靠。 三心二意不利己, 專心致志有成效。 不學小貓去約魚, 就做李白古今曉。
    噴泉閱讀 253評論 2 3

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