定義: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 ...