C語言學習筆記(2) 指標(下)

2021-08-09 04:43:21 字數 1135 閱讀 4161

它的第乙個引數是置空記憶體的首位址,第二個引數寫0, 第三個是置空的大小,單位位元組(sizeof(a)) memcpy 實現第乙個引數是目標位址,第二個是源位址,第三個是copy多少內容,單位位元組 注意使用過程中假如待拷貝的陣列和目標陣列型別不同,short int 和int等。會輸出如下奇怪

的結果

這裡其實是00020001 00040003。。。000被隱藏起來了。可以用%08x讓它把000輸出 memmove和memcpy用法一樣,使用memcpy的時候,一定要確保記憶體沒有重疊區域。記憶體重疊: memcpy(&a[3],&a[0],20);//copy五個成員(注意不是20個)

char*作為函式的引數: void test(char *a) 和之前的陣列是一樣的,為了保護字串a,需要加const strlen那個庫函式計算字串的長度 strlen(const char *a),它不要改字串的值,所以用const strncat合併兩個字串和strcpy這兩個的引數也有乙個為const,指向的是源字串 如果乙個陣列作為函式的引數,那麼陣列的成員數量在函式內部是不可見的,解決辦法: 在傳遞乙個陣列的時候,同時提供另乙個引數,標明這個陣列有幾個成員變數。如果傳遞的是個字串,就不用 傳遞這個引數,因為字串是0結尾的。

指標陣列作為main函式的引數

void print(char *p)//錯誤

void print(char **p)

for (i=0;i<3;i++)

指標陣列作為main函式的引數 int main(int argc ,char *args) //argc是乙個指標陣列char ,argc代表這個陣列有多少個成員 系統呼叫main函式 argc代表命令列引數的數量,程式名字本身就算乙個引數!!!一般args[0]代表函式名,main函式是系統呼叫的,所以main函式的功能是得到命令列的引數

C語言學習筆記02 指標

指標也是一種變數,占有記憶體空間,用來儲存記憶體位址。在指標宣告時,號代表所宣告的變數為指標。在指標使用時,號表示操作指標所指向的記憶體空間的值。p相當於通過位址 p變數的值 找到一塊記憶體,然後操作記憶體。p放在等號的左邊賦值 給記憶體賦值 p放在等號的右邊取值 從記憶體獲取值 指標變數和它所指向...

C語言學習筆記(四) 指標

c語言學習筆記 四 指標 include intmain p就是乙個指標,p就是取出p指向位址的值 陣列 相同型別的資料集合 include intmain 在這個程式中,p是乙個指標,a是乙個陣列,若p a 0 或者p a就是p指向陣列的第乙個元素,接下來就可以對p進行 1或 1進行偏移操作 in...

C語言學習(三) 指標

指標的定義int p char p float p指標變數所佔記憶體的大小 跟前面定義的型別無關 而跟系統有關 16bits作業系統 2b 32bits作業系統 4b 64bits作業系統 8b 指標指向乙個值所在的第乙個位元組 通常乙個位址存放乙個位元組 const修飾指標 指標指向乙個字串時 如...