指標(pointer)可謂是c語言的一大精髓,同樣也是c語言學習的一大難點,早在正式開始學習c語言前就聽說過這一大名,如今我也開始接觸到了它。通過課上的學習以及課下的整理,我對指標有了一些了解。
在認識指標前,我們先要認識記憶體位址這一概念。要知道,我們每定義乙個變數,系統就會在記憶體中為該變數分配一段記憶體空間,這段空間的長度取決於變數型別(如int型為4個位元組),而這段空間在記憶體中就存在著位址,系統讀取乙個變數會先找到其首位址,然後再按其型別讀取接下來的幾個位元組,這裡的首位址就是該變數的記憶體位址。而指標(變數)就是儲存著某一變數位址的變數,系統可以通過指標(變數)訪問其所指向的另乙個變數,因此形象地將其稱為指標。 指標變數的定義通常如下圖所示:
注意指標變數p的型別必須與所指向變數的型別相同。
應用指標我們可以定義乙個交換兩個變數值的函式swap,如下圖所示:
編寫函式strmcpy
將輸入字串char *t
中從第m
個字元開始的全部字元複製到字串char *s
中。若m
超過輸入字串的長度,則結果字串應為空串。
void strmcpy( char *t, int m, char *s );
裁判測試程式樣例:
#include #include分析:複製前先要判斷給定第m個字元是否在字串t的範圍內,若超出範圍直接將新字串s賦值為空(null),若在範圍內則進行下一步的複製。具體步驟見**注釋。#define maxn 20
void strmcpy( char *t, int m, char *s );
void readstring( char s ); /*
由裁判實現,略去不表
*/int
main()
/*你的**將被嵌在這裡
*/
**:
void strmcpy( char *t, int m, char *s )執行測試:輸入:9(換行)this is bubble speakings[len] = '
\0'; //
字串必須以'\0'結尾才有效
}else
}
執行結果:bubble speaking
輸入:10(換行)oversize
執行結果:(空)
程式執行成功!
C語言學習(三) 指標
指標的定義int p char p float p指標變數所佔記憶體的大小 跟前面定義的型別無關 而跟系統有關 16bits作業系統 2b 32bits作業系統 4b 64bits作業系統 8b 指標指向乙個值所在的第乙個位元組 通常乙個位址存放乙個位元組 const修飾指標 指標指向乙個字串時 如...
C語言學習4 指標
int a 10 int p a 一級指標 int s p 二級指標 int p 10 指向陣列的指標 int s 10 指標指向放指標的陣列 這個陣列有十個空間 int p 10 開闢10個空間 每個空間放指標 例如 int br 10 int s 10 br int ar 10 int p 10...
C語言學習6指標
1.指標與指標變數 2.直接訪問和間接訪問 3.指標的定義格式 方法一 int a int p a 方法二 int p,a p a 1.概念2.一般形式定義 int b 3 指標陣列,表示有三個元素,每個元素都是int int p 3 陣列指標,也可為行指標,它指向包含3個元素的一維陣列 1.定義乙...