while 命令或表達式
do
命令表
done
break 跳出回圈
continue 跳出本次回圈,繼續下一次回圈
function 函數名()
{
命令集合
}
函數名()
{
命令集合
}
採用命令列參數的形式進行傳參
返回值通過$?接收
SUM=func()
—>>> func函數的輸出賦值給SUM變數
local修飾的變數是區域性變數
xxx.sh
./xxx.sh
var=filename
func $var
file file1
ls | grep $1 | wc -l
元件:
分析器:分析器將源語言程式程式碼轉換爲彙編語言。因爲要從一種格式轉換
爲另一種格式(C到彙編),所以分析器需要知道目標機器的彙編
語言。
彙編器:彙編器將彙編語言程式碼轉換爲CPU可以執行位元組碼。
鏈接器:鏈接器將彙編器生成的單獨的目標檔案組合成可執行的應用程式。
鏈接器需要知道這種目標格式以便工作。
標準C庫:核心的C函數都有一個主要的C庫來提供。如果在應用程式中用到
了C庫中的函數,這個庫就會通過鏈接器和原始碼連線來生成最終
的可執行程式。
預處理
gcc -E test.c -o test.i
編譯
gcc -S test.i -o test.s
彙編
gcc -c test.s -o test.o
鏈接
gcc test.o -o test
檢視檔案
(gdb) l
設定斷點
(gdb) b 6
檢視斷點情況
(gdb) info b
執行程式碼
(gdb) r
檢視變數值
(gdb) p n
單步執行
(gdb) n
(gdb) s
恢復程式執行
(gdb) c
幫助
(gdb) help [command]
【三】、指針
地址:記憶體單元的編號
數據型別:用來修飾變數(定義變數時使用)
作用:確定變數在記憶體中的大小
變數:變數是對記憶體空間的抽象
指針:數據型別 —>>> 修飾變數
作用:確定變數在記憶體中的大小
char ch;
int a;
指針 p;
在記憶體中開闢4byte
本質:變數
對記憶體空間的抽象
指針的一般定義形式:
<數據型別> * 指針變數名;
int *p ;
int arr[10];
p = arr;
sizeof:計算變數或數據型別在記憶體中的大小
sizeof(arr) = 40;
sizeof(int) = 4;
一維陣列,陣列名代表什麼含義:陣列在記憶體空間中
的首地址(地址常數)。
字串儲存:
1.字串陣列
2.常數區
char buf[] = {'a','b','c','d','\0'};
char buf[] = "abcd";
char *p = "abcd";
char *q = buf;
本質:陣列
元素的型別:地址常數、指針變數
一般定義形式:
<數據型別>* 陣列名[陣列元素個數];
本質:指針變數
指針變數裡存放的是指向二維陣列首地址的
一般定義形式:
<數據型別> (*陣列指針變數名)[列數];
int a[2][3];
int (*p)[3] = a;
a[i][j] <==> *(a[i] + j) <==> *(*(a+i) + j)
<==>*(*(p+i) + j) <==> *(p[i] + j) <==> p[i][j]