1,下面程式是執行結果是?
#include
#include
struct stu
;void
fun(
struct stu *p)
intmain1()
,,};
fun(students +1)
;system
("pause");
return0;
}
2,喝汽水,1瓶汽水1元,2個空瓶可以換一瓶汽水,給20元,可以多少汽水(程式設計實現)。
#define _crt_secure_no_warnings
#include
#include
intdrink_water
(unsigned
int money)
return bot;
}int
main()
3,指標、陣列;』字元長度、字串長度
//#include
//#include
//#include
////int main() ;
// // printf("%d\n", sizeof(arr)); // 6 整個陣列的記憶體大小
// // printf("%d\n", sizeof(arr + 0)); // 4 arr + 0 已經變成指標了
// // printf("%d\n", sizeof(*arr));// 1 *arr 得到乙個 char
// // printf("%d\n", sizeof(arr[1]));// 1 arr[1] 得到乙個 char
// // &arr 型別是 char(*)[6]
// // printf("%d\n", sizeof(&arr));// 4 &arr 得到的是乙個陣列指標, 也是指標
// // printf("%d\n", sizeof(&arr[0] + 1)); // 4 得到的是乙個 char*
//// // strlen 是求字串的長度, 乙個帶 \0 的字元陣列才叫字串
// // printf("%d\n", strlen(arr)); // 未定義行為
// // printf("%d\n", strlen(arr + 0)); // 未定義行為
// // 原則上應該要編譯失敗, 但是 c 語言對於型別檢查沒那麼嚴格,
// // 就導致把 char 隱式轉成了 char*. 這樣還是得到了乙個非法的指標.
// // 解引用的時候就會出現未定義行為
// // printf("%d\n", strlen(*arr));
// // 這個**同上
// // printf("%d\n", strlen(arr[1]));
// // char(*)[6];
// // &arr 型別和 char* 不一致. 如果隱式型別轉換過去的話,
// // 就會得到乙個指向 'a' 指標. 從這個指標開始往後找 \0 仍然找不到
// // printf("%d\n", strlen(&arr));
// // 這個**和上面一樣
// // printf("%d\n", strlen(&arr + 1));
// // printf("%d\n", strlen(&arr[0] + 1)); // 得到乙個指向 b 的指標. 但是仍然是未定義行為
//// /
// // 第二組
// /
// // char arr = "abcdef";
// // printf("%d\n", sizeof(arr)); // 7 帶 \0
// // printf("%d\n", sizeof(arr + 0));// 4 arr + 0 得到乙個 char*
// // printf("%d\n", sizeof(*arr));// 1 *arr 得到乙個字元
// // printf("%d\n", sizeof(arr[1]));// 1 同上
// // printf("%d\n", sizeof(&arr));// 4 &arr 陣列指標
// // printf("%d\n", sizeof(&arr + 1));// 4 同上
// // printf("%d\n", sizeof(&arr[0] + 1));// 4 得到乙個 char*
//// // printf("%d\n", strlen(arr));//6 求字串長度, 不算 \0
// // printf("%d\n", strlen(arr + 0));// 6 得到的還是乙個指向 a 的指標
// // printf("%d\n", strlen(*arr));// 未定義行為, *arr 得到的是 字元 a
// // printf("%d\n", strlen(arr[1]));// 同上
// // printf("%d\n", strlen(&arr));// 6 &arr 是乙個陣列指標, 裡面存的位址恰好就是陣列首元素位址
// // printf("%d\n", strlen(&arr + 1));// 未定義行為, &arr 是乙個陣列指標, + 1 跳過了整個陣列, 此時就已經訪問的是非法記憶體了
// // printf("%d\n", strlen(&arr[0] + 1));// 5 &arr[0] + 1 得到指向 b 的指標
//// /
// // 第三組
// /
// // char* p = "abcdef";
// // printf("%d\n", sizeof(p)); // 4
// // printf("%d\n", sizeof(p + 1)); // 4
// // printf("%d\n", sizeof(*p));// 1 *p 是乙個 char 型別
// // printf("%d\n", sizeof(p[1]));// 1 p[1] 是乙個char
// // printf("%d\n", sizeof(&p));// 4 char**
// // printf("%d\n", sizeof(&p + 1));// 4 char**
// // printf("%d\n", sizeof(&p[0] + 1));// 4, char* 指向 b
//// // printf("%d\n", strlen(p)); // 6
// // printf("%d\n", strlen(p + 1)); //5
// // printf("%d\n", strlen(*p)); // 未定義行為
// // printf("%d\n", strlen(p[1])); // 未定義行為
// // printf("%d\n", strlen(&p));// 未定義行為. &p => char**
// // printf("%d\n", strlen(&p + 1)); // 未定義行為
// // printf("%d\n", strlen(&p[0] + 1)); // 5
////
//// system("pause");
// return 0;
//}
第七節 指標
go語言有指標這一概念。直接上 func pointtest 定義int型別的值a,並且賦值為3 定義int型別指標變數p,並且取a的位址賦值給p 輸出a和p 控制台 3 0xc00000a0a8 3 process finished with exit code 0 a的值為3,p為a在記憶體中的...
第七節 覆蓋虛介面
有時候我們需要表達一種抽象的東西,它是一些東西的概括,但我們又不能真正的看到它成為乙個實體在我們眼前出現,為此物件導向的程式語言便有了抽象類的概念。c 作為乙個物件導向的語言,必然也會引入抽象類這一概念。介面和抽象類使您可以建立元件互動的定義。通過介面,可以指定元件必須實現的方法,但不實際指定如何實...
HCIE筆記 第七節 ICMP ARP
icmp重定向 作用 解決網路中的次優路徑 觸發 當某乙個裝置收到乙個資料,進行 時發現還要從該介面進行 於是觸發icmp重定向。報文 type 5,code 0 arp 位址解析協議 正向arp 位址解析協議 在已知ip的情況下,求與之對應的mac位址。arp是基於資料鏈路層封裝的2.5層協議。接...