Linux學習筆記(二)

2021-10-04 01:19:05 字數 3731 閱讀 7954

定義:int a ; int *p;說明符,說明變數p為乙個指標變數

p==&a; int a=10;int *p = &a;int *q = &a;int *p = q;

只有在定義變數時候*才是說明符,其他都為運算子.

訪問:printf(「%d\n」,a); printf(「%d\n」,*p)

2、一維陣列和指標

定義:int a [10]=;陣列各位址的值如圖:

int *p=a;p指向a位址

訪問:a[0]==*p a[3]==p[3]; *(a+5)==*(p+5)

int b[10]

=;int *q=b;

printf

("%d\n",*

(q+2))

;//b[2] *(b+2) p[2]

拓展:

printf

(「%p\n」,a)

;//%p列印位址

printf

(「%x\n」,a)

;//無符合十六進製制小寫字母

printf

(「%x\n」,a)

;//無符合十六進製制大寫字母

printf

(「%o\n」,a)

;//有符號八進位制整數

3、char型指標

定義:

char a;

char

*p=「hello」;

//hello為指標/位址

char p[5]

=「hello」;

char

*p=「hello」;

兩者區別:前者後面沒有』/0』結束,後者有』/0』

4、二維陣列與指標

定義:

int a [3]

[4]=

,,};int

*p=&a[0]

[2];

或int

*p=a[0]

; 或int

*p=a[1]

;或int

*p=a[2]

;

int a[3]

[4]=

,,};

int*p = a[0]

;printf

("%p\n"

,p+4);

//a[0]+4 a+1 &p[4] &a[1][0]

printf

("%d\n",*

(p+2))

;//*(a[0]+2) p[2] a[0][2]

指標陣列:int *a[3];

陣列指標: (*p)[2]===指向整個陣列的指標

函式指標陣列:int (*a[3])();

eg:

char

*p[3]=

;//p[0]指標對應於hello,p[1]對應於world,p[3]對應於wyj

printf

("%s\n"

,p[1]+

2);//輸出rld

函式:解決特定問題的方法. 形式:資料型別 函式名(引數型別列表(形參或實參))

格式

資料型別

printf()

;scanf()

;getchar()

;putchar()

;

舉例:

#include

intmax

(int

,int);

//函式的申明

intmain()

//返回型別 函式名稱 (引數型別 引數)

intmax

(int a,

int b)

//函式主體

else

}

函式原型由函式返回型別、函式名和參數列組成,它與函式定義的返回型別、函式名和參數列必須一致。函式原型必須包含引數的識別符號(對函式宣告而言是可選的);說明:系統標準函式並沒有在包含檔案中定義,而只是提供了函式原型。在呼叫函式時,系統會正確地呼叫庫函式。 注意:函式原型與函式定義必須一致,否則會引起連線錯誤。

函式傳參方式:函式傳參就是乙個值拷貝的過程

值傳遞:

**:

//指標及位址指令:

#include

intmain()

,,};

int*p = a[0]

;printf

("%p\n"

,p+4);

//a[0]+4 a+1 &p[4] &a[1][0]

printf

("%p\n"

,a[1])

;printf

("%p\n"

,a[1]+

1);printf

("%d\n"

,p[2])

;printf

("%d\n",*

(p+2))

;//*(a[0]+2) p[2] a[0][2]

printf

("%d\n",*

(a[2]+

1));

printf

("%d\n"

,a[1][

2]);

printf

("%p\n"

,&a[1]

[0])

;printf

("%p\n",*

(a+1))

;int b[10]

=;int*q=b;

printf

("%d\n",*

(q+2))

;//b[2] *(b+2) p[2]

char

*w[3]=

;printf

("%s\n"

,w[1]+

2);//=rld

return0;

}

執行結果:

通過今天的學習進一步的鞏固了有關指標的用法,以前對指標陣列、陣列指標和函式指標陣列就非常紊亂,無法分清什麼是指標陣列、陣列指標和函式指標陣列以及如何用它們,今天的學習解決了以前的困惑;還有就是今天最大的收穫是了解了更多的位址取址指令。

linux 學習筆記二

info page 目錄 usr share info這個目錄中 info info 正確的關機方法 資料同步寫入硬碟 sync 關機或重新開機前 關機 shutdown 重啟 reboot init halt 檢視網路聯機狀態 netstat a 檢視執行程式 ps aux 忘記root密碼 li...

Linux學習筆記(二)

ubuntu中常用命令 一 建立,刪除目錄及檔案 mkdir 目錄名 建立乙個目錄 rmdir 空目錄名 刪除乙個空目錄 rm 檔名 檔名 刪除乙個檔案或多個檔案 rm rf 非空目錄名 刪除乙個非空目錄下的一切 touch 檔名 建立乙個空檔案 二 強制清空 站 ubuntu8.04以前的版本 s...

Linux學習筆記二

系統程序篇 什麼是守護程序 在linux 或者unix 作業系統中在系統的引導的時候會開啟很多服務,這些服務就叫做守護程序。這些服務程式並不會接受電腦使用者的直接操控。此類程式會被以程序的形式初始化。守護程序程式的名稱通常以字母 d 結尾。service 格式 service 命令 service ...