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中呼叫庫函式,使用的是全域性命名...