傳智播客C 最新一期Day03學習筆記

2021-09-10 09:18:16 字數 4179 閱讀 5966

extern:

表示宣告。 沒有記憶體空間。 不能提公升。

const:

限定乙個變數為唯讀變數。

volatile:

防止編譯器優化**。

volatile int *** = 0;

register:

定義乙個暫存器變數。沒有記憶體位址。

register int a = 10;

字串:

c語言中,用雙引號引著的一串字元,稱之為字串。一定有乙個結束標記'\0'

char ch = 『a』; 乙個位元組

"abc" --> 'a''b''c''\0'

『a』 不等價 「a」('a''\0')

printf函式:

%s:列印字串, 挨著從字串的第乙個字元開始列印,列印到'\0'結束。

%d:列印整數

%c:列印字元

%x:列印16進製制數

%u:列印無符號

%m.n: 列印實型時用到,一共有 m 位(整數、小數、小數點),n位小數。

%0m.nf: 其中 f:表示列印實型,一共有 m 位(整數、小數、小數點),n位小數。 0:表示不足 m 位時,用0湊夠m位。

%%: 顯示乙個%。 轉義字元'\' 對 % 轉義無效。

%ns:顯示n個字元的字串。不足n用空格向左填充。

%0ns:顯示n個字元的字串。不足n用0向左填充。

%-ns:顯示n個字元的字串。不足n用空格向右填充。

putchar函式:

輸出乙個 字元 到螢幕。

直接使用 ascii 碼。

不能輸出字串。

『abc』既不是乙個有效字元,也不是乙個有效字串。

常用putchar('\n');來列印換行。

printf("\n");

scanf函式:

從鍵盤接收使用者輸入。

1. 接收 整數 %d

int a, b, c; 建立變數空間, 等待接收使用者輸入。

scanf("%d %d %d", &a, &b, &c);

2. 接收 字元 %c

char a, b, c;

scanf("%c %c %c", &a, &b, &c);

3. 接收 字串 %s

char str[10]; // 定義乙個陣列,用來接收使用者輸入的 字串。

scanf("%s", str); // 變數名要取位址傳遞給 scanf, 陣列名本身表示位址,不用 & 符。

接收字串:

1) scanf 具有安全隱患。如果儲存空間不足,資料能儲存到記憶體中,但不被保護。【空間不足不要使用】

2) scanf 函式接收字串時, 碰到 空格 和 換行 會自動終止。不能使用 scanf 的 %s 接收帶有空格的字串。

將 #define _crt_secure_no_warnings 新增到程式 第一行。 解決scanf 4996錯誤

getchar()函式:

從鍵盤獲取使用者輸入的 乙個字元。

返回該獲取的字元的 ascii 碼。

算數運算子:

先 * / % 後 + -

除法運算後,得到的結果賦值給整型變數時,取整數部分。

除0 :錯誤操作。不允許。

對0取餘:錯誤操作。不允許。

不允許對小數取餘。餘數不能是 小數。 35 % 3.4;

對負數取餘,結果為餘數的絕對值。10 % -3; --》 1

++ 和 --:

字首自增、自減:

先自增/自減, 在取值。

int a = 10;

++a; // a = a+1;

字尾自增、自減:

int a = 10;

a++; // a = a+1;

先取值, 再自增/自減。

賦值運算:

int a = 5;

a += 10; // a = a+10;

a -= 30; // a = a-30;

a %= 5; // a = a % 5;

比較運算子:

== 判等。

!= 不等於.

< 小於

<= 小於等於

> 大於

>= 大於等於

13 < var < 16; ==> var > 13 && var < 16;

邏輯運算子:

0為假,非0為真。(1)

邏輯非:!

非真為假, 非假為真。

邏輯與: &&(並且)

同真為真,其餘為假。

邏輯或:|| (或)

有真為真。同假為假。

運算子優先順序:

() > ++ -- (字尾高於字首) (強轉) sizeof > 算數運算(先乘除取餘,後加減)> 

比較運算 > 邏輯運算 > 三目運算(條件運算)> 賦值運算 > 逗號運算

三目運算子: ? :

表示式1 ? 表示式2 : 表示式3

表示式1 是乙個判別表示式。 如果為真。整個三目運算,取值表示式2。

如果為假。整個三目運算,取值表示式3。

預設結合性。自右向左。

型別轉換:

隱式型別轉換:

由編譯器自動完成。

由賦值產生的型別轉換。 小--》大 沒問題。 大 --》 小 有可能發生資料丟失。

int r = 3;

float s = 3.14 * r * r;

321: 256 128 64 32 16 8 4 2 1

1 0 1 0 0 0 0 0 1

char ch = 0 1 0 0 0 0 0 1

強制型別轉換:

語法: (目標型別)帶轉換變數

(目標型別)帶轉換表示式

大多數用於函式呼叫期間,實參給形參傳值。

if分支語句:匹配乙個範圍.屬於模糊匹配.

if (判別表示式1)

else if(判別表示式2)

else if(判別表示式3)

。。。else

練習:三隻小豬稱體重:

螢幕輸入三隻小豬的重量。借助if分支語句,找出最重的小豬重量。
switch 分支:精確匹配.

switch(判別表示式)

case 穿透:

在乙個case分支中如果,沒有break;那麼它會向下繼續執行下乙個case分支.

while迴圈:

while(條件判別表示式)

練習:敲7:1–100數數, 逢7和7的倍數,敲桌子。

7的倍數:	num % 7 == 0

個位含7: num % 10 == 7

十位含7: num / 10 == 7

do while 迴圈:

無論如何先執行迴圈體一次。然後在判斷是否繼續迴圈。

do while (條件判別表示式);

練習:求水仙花數。 乙個三位數。各個位上的數字的立方和等於本數字。 234 861

100 -- 999

int num = 100;

個位數: int a = num % 10; a*a*a;

十位數: int b = num / 10 % 10;

百位數: int c = num / 100;

傳智播客 struts框架原理及應用(一)

框架乙個曾經多麼遙不可及的,彷彿大神一般的存在的概念,終於在今天第一次揭開面紗,一看之下也沒什麼,不過就是一堆jar包,也沒有三頭六臂。一,struts環境的搭建 一句話 將一堆jar包匯入到工程然後修改一下總xml檔案就完了。action org.apache.struts.action.acti...

傳智播客 資料庫之ORACLE(一)

一 oracle公司簡介 oracle是殷墟出土的甲骨文 oracle bone inscriptions 的英文翻譯的第乙個單詞 oracle公司是全球最大的資訊管理軟體及服務 商,成立於1977年,總部位於美國加州 redwood shore oracle公司因其複雜的關聯式資料庫產品而聞名。o...

三 C 對C的擴充套件(感謝傳智播客)

4.1namespace命名空間 1 什麼是namespace命名空間 所謂namespace,是指識別符號的各種可見範圍。c 標準程式庫中的所有識別符號都被定義於乙個名為std的namespace中,更好地控制識別符號的作用域。2 和的不同 1 當使用時,相當於在c中呼叫庫函式,使用的是全域性命名...