C Day2 3 迴圈 表示式 函式

2021-10-07 12:48:54 字數 1655 閱讀 4563

*++pt = pt[1]

二維陣列 int maxtemps[4][5];

|| or

5>3? cout<-「yes」 : cout<-「no」

switch ()

函式 按值傳遞(標準函式)

int main()

int func_byvalue(int value)

/*00781770 push ebp

00781771 mov ebp,esp

00781773 sub esp,0c0h

00781779 push ebx

0078177a push esi

0078177b push edi

………………………………

007817b4 pop edi

007817b5 pop esi

007817b6 pop ebx

007817b7 add esp,0c0h

007817bd cmp ebp,esp

007817bf call __rtc_checkesp (0781226h)

007817c4 mov esp,ebp

007817c6 pop ebp

007817c7 ret

*/函式 按位址傳遞(標準函式)

int test = ;

00ab1932 mov dword ptr [test],1

00ab1939 mov dword ptr [ebp-18h],2

00ab1940 mov dword ptr [ebp-14h],3

00ab1947 mov dword ptr [ebp-10h],4

00ab194e mov dword ptr [ebp-0ch],5

func_byvalue(test);

***00ab1955 lea eax,[test]

***00ab1958 push eax

***00ab1959 call func_byvalue (0ab139dh)

00ab195e add esp,4

在c++中,當且僅當在函式頭時 int arr = int *arr

所以當在主程式呼叫時,sizeof arr是陣列所佔空間,而在int sum_arr(int arr)中,sizeof arr是arr這個指標所佔的空間

在定義陣列函式的時候,不要用int sum(int arr[size]), 而是有兩種定義風格:

(1) int sum(int arr, size)

(2) int sum(int *arr_begin, *arr_end)

保護位址引數數值不被修改:在函式頭定義時用 void func(const int arr, int n); ←僅為編譯器級別(asm還可以改,但後續**可能出錯(編譯器把所有該值寫入固定值))

陣列指標vs指標陣列

int *p1[10] → 優先順序比*高→(int *) (p1[10]) →乙個陣列,其包含10 個指向int 型別資料的指標

int (*p1)[10] → 乙個指標,指向乙個匿名的有10個元素的int陣列

二維陣列做引數:

int data[3][4]

int func(int (* data)[4], int size)

結構的按值傳遞:本質上是把所有的結構都push進去

精通正規表示式 2 3

perl語言是一門功能強大的指令碼語言,誕生於20世紀80年代末期,其思想主要來自其他的程式語言和工具。perl關於文字處理和正規表示式的許多概念來自兩種專業化的語言awk和sed。使用正規表示式時,主要有3個問題值得注意 1 支援的元字元,以及這些元字元的意義。這通常稱為正規表示式的 流派 2 正...

迴圈和關係表示式

一 for迴圈 1.在引入bool型別之前,關係表示式為ture 被判定為1 如果為false,被判定為0。2.函式cout.setf 設定了乙個標記。該標記命令cout顯示ture和false,而不是1和0。函式引數為cout.setf ios base boolalpha 但在老式c 可能要求使...

表示式 條件控制 迴圈

表示式 expression 是運算子 operator 和運算元 operand 所構成的序列 最好實際操作驗證例 mood true if mood print go to left else print go to right go to left a input print a is a p...