字串的引用方式
在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...