011-指針(上)-C語言筆記

011-指針(上)-C語言筆記

學習目標

1.【掌握】字符串經常使用函數數組

2.【掌握】指針變量的聲明安全

3.【掌握】指針變量的初始化ide

4.【掌握】函數與指針函數

5.【掌握】指針的數據類型學習

6.【掌握】多級指針spa

7.【掌握】指針與數組指針

1、字符串經常使用函數

puts和gets函數的聲明在stdio.h頭文件中,strcmp、strlen、strcpy、strcat函數的聲明在string.h頭文件中。code

puts()函數blog

語法:puts(存儲字符串數據的數組名);內存

輸出一個字符串數據,並自動換行。不過只能輸出字符串,而且不能使用格式控制符。

gets()函數

語法:gets(存儲字符串數據的數組名);

從控制檯接收一個字符串數據,並存儲在制定的字符數組之中。而且能讀取到空格,scanf不能讀取。不過gets只能接收字符串。不管是gets函數仍是scanf函數在接收字符串的時候都是不安全的。若是輸入字符串長度不夠的時候,就會出問題。

strcmp()函數

語法:strcmp(字符串1,字符串2);//返回int類型

根據每一個字符對應的ASCII碼依次比較兩個字符串的每一個字符的大小,若是比較到兩個字符不一樣,就返回結果。若是返回正數,說明第一個字符串大,返回負數,說明第二個大。返回0,說明每一個字符的ASCII相同。

strlen()函數

語法:strlen(字符串);

計算字符串的長度,一個一個字符計數,直到遇到'\0'爲止。返回值是unsigned long。

strcpy()函數

語法:strcpy(字符串1,字符串2);

將字符串2拷貝到字符串1裏,而且覆蓋掉字符串1裏的數據。若是字符串1放不下字符串2,就會保錯。

strcat()函數

語法:strcat(字符串1,字符串2);

將字符串2中的數據追加到字符串1後面,不會覆蓋,只會拼接。若是字符串1放不下字符串2,就會保錯。

 

2、指針變量的聲明

咱們聲明一個變量,實際是在內存中申請一個指定字節數的字節空間來存儲數據,分配變量空間的時候,是從高地址到底地址來分配的。

概念:

1.變量的值:是存儲在變量空間裏的數據。

2.變量的地址:聲明變量時申請到的字節空間中低字節的地址。

3.指針:變量的地址就叫作指針,地址就是指針,指針就是地址,只是換了個說法而已。

4.指針變量:其實也就是一個變量,只不過這個指針變量的值是個地址。

訪問變量的兩種方式:

1.直接訪問:直接使用變量名來訪問。

2.間接訪問:讓一個指針指向這個變量,經過這個指針能夠間接的訪問這個變量。

指針變量的聲明

語法:

聲明普通變量:數據類型 變量名;

聲明指針變量:數據類型 *指針變量名;

注意:

指針變量名也是一個標識符,也須要符合變量的命名規則和規範。通常狀況下,咱們變量名都以p開頭,這樣讓別人一眼都能看出是指針變量。

 

3、指針變量的初始化

指針變量中只能存儲和指針變量類型相同的變量的地址,因此不能直接給指針變量賦值一個其餘非地址的數據。使用&取地址運算符能夠獲取變量的地址。

語法:數據類型 *指針變量名 = 相同數據類型的變量的地址;

經過指針變量訪問指針變量指向的普通變量,使用*取值符來取出指針變量指向的普通變量。

注意:

野指針:聲明一個指針變量而沒有初始化,這個指針變量的值是一個隨機內存地址。經過這個指針去爲指針指向的空間賦值的時候,就有可能改掉別人的數據,形成崩潰。

空指針:聲明一個指針變量的時候不肯定指向哪一個變量,能夠給他賦值NULL或者0(這裏0就表明NULL,不是整型0),表明這個指針不指向任何空間。

4、函數與指針

在函數中操做實參

 

5、指針的數據類型

QQ20150707-1

經過指針操做指針指向的變量的時候,只能找到被指向那個變量的低字節的地址,到底要操做幾個字節的空間是根據指針的類型來決定的。例如:

原理:這裏指針操做指針指向的變量的時候,指針認爲他指向的是int類型的變量,int類型佔4個字節的空間,因此操做了4個字節的空間。

6、多級指針

一級指針:若是一個指針變量中存儲的是一個普通變量的地址,那麼這樣的指針就叫作一級指針。

二級指針:若是一個指針變量中存儲的是一個一級指針變量的地址,那麼這樣的指針就叫作二級指針。

三級和多級同理。

 

7、指針與數組

指針能夠和整數進行加減運算

遍歷數組大法:

指針數組:

所謂的指針數組,指的是一個專門用來保存多個相同數據類型指針的數組。

相關文章
相關標籤/搜索