C語言基礎 指標2

2021-06-28 21:04:41 字數 2703 閱讀 7789

字串的引用方式

在c語言中,字串是存放在字元陣列中的,想引用乙個字串,可以使用以下兩種方法。

1. 用字元陣列存放乙個字串,可以通過陣列名和下標引用字串中乙個字元,也可以通過陣列名和格式宣告」%s」輸出該字串。

例如,定義乙個字元陣列,在其中存放字串「i love china !」,輸出該字串和第8個字母

#include int main ()

2. 用字元指標變數指向乙個字串常量,通過字元指標引用字串常量。

例如,

#include int main ()

注意:通過字元陣列名或字元指標變數可以輸出乙個字串,但對乙個數值型陣列,是不能企圖用陣列名輸出它的全部元素的。

如果想把乙個字串從乙個函式傳遞到另乙個函式,可以用位址傳遞的方法,即用字元陣列名作引數,也可以用字元指標變數做引數。在被呼叫的函式中可以改變字串的內容,在主調函式中可以引用改變後的字串。

例如,用函式呼叫實現字串的複製

#include int main()  

void copy_string(char from,char to)

to[i]='\0';

}

使用字元指標變數和字元陣列的比較

1、字元陣列由若干元素組成,每個元素中放乙個字元,而字元指標變數中存放的是位址,絕不是將字串放到字元指標變數中。

2、賦值方式:可以對字元指標變數賦值,但不能對陣列名賦值。

3、初始化的含義。對字元指標變數賦初值:

char*a="abc";  //定義字元指標,並把字串的首位址賦給a。

charb="abc";  //定義字元陣列,並把字串賦給陣列中各元素。

4、儲存單元的內容。編譯時:為字元陣列分配若干儲存單元,以存放各元素的值。而對字元指標變數,只分配乙個儲存單元。

5、指標變數的值可以改變,而陣列名代表乙個固定的值,不能改變。

例如,改變指標變數的值

#include int main ()

6、字元陣列中各個元素的值可改變,但字元指標變數指向的字串常量中的內容是不可被取代的。

7、char *format="a=%d,b=%d\n";printf(format,a,b);字元指標變數允許存放一句printf函式中的表示式。

3. 指向函式的指標

什麼是函式指標

如果在程式中定義了乙個函式,在編譯時,編譯系統為函式**分配一段儲存空間,這段儲存空間的起始位址成為這個函式的指標。可以定義乙個指向函式的指標變數,用來存放某一函式的起始位址,這就意味著此指標變數指向該函式。例如:

int (*p) (int ,int );

用函式指標變數呼叫函式,例如

#include int main()  

int max(int x,int y) //定義max函式

怎樣定義和使用指向函式的中指標變數

定義指向函式的指標變數的一般形式:

型別名 (*指標變數名)(函式引數列表);

注意:函式指標不能進行算術運算!p+1,p-n是無意義的。

1、指標就是位址,但指標&指標變數不同。

2、指向意味著通過物件的位址。

3、一維陣列名arr代表首元素位址,*p=arr;陣列給指標p賦值首元素位址。

4、關於指標的歸納比較:

變數定義     型別表示     含義

int i               int                  定義整型變數i

int *p            int *               定義p為指向整型資料的指標變數

int a[5]         int [5]             定義有5個元素的整型陣列

int *p[4]        int*[4]           定義指標陣列,由4個指向整型資料的指標元素組成

int (*p)[4]      int(*)[4]         p為指向包含4個元素的一維陣列的指標變數

int fun()         int ()             返回int函式值的函式fun

int *p()          int*()             p為返回乙個(指向整型資料的)指標的函式

int (*p)()        int (*)()         p為指向(返回整型資料的)函式的指標

int **p            int **             p是乙個指向整型資料的指標變數的指標變數

void *p          void *           p是乙個指標變數,基型別為void,即p是乙個不指向具體物件的指標變數

5、指標運算,明白以下含義:p++、p--、p+i、p-i、p=&a、p=arr、p=&arr[i]、p=fun、p1=p2。

6、指標變數可以有空值,p=null(在stdio.h標頭檔案中#define null 0),它使p指向位址為0的單元。

注意:指標使用實在太靈活,對熟練的程式設計師可以編出高質、高效的**,但對初學者要慎用,比如:未對p賦值的情況下,就向*p賦值會破壞其它單元內容。

c語言基礎2指標

指標的詳解 指標的定是 int a b 1 a b 可以看出來,a這個指標變數存的是b的位址。可以變形為int a b d 表示訪問位置100,並取得裡面的值。乙個常見的錯誤,int a a 12 但是a究竟指向 呢,由於我們沒有對a進行初始化,所以我們沒有辦法 12這個值究竟存在 如果變數是靜態的...

C語言基礎 指標基礎

最小儲存單位 bit 即 0 1 基本儲存單位 byte 1byte 8bit 注 計算機訪問的資料是byte位數定義變數 分配儲存空間 引用變數 通過變數名引用變數的內容即變數空間的首位址 為常量,即 變數名 專門儲存位址常量的變數型別 變數名所有指標變數均分配4byte的儲存空間 與其他變數相同...

C語言指標2

include 指標函式 char getword char char getword char c int main include 指標函式 char getword char char getword char c int main include 函式指標 指向函式的指標 int squar...