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:
256128
6432168
4211
0100
0001
char ch =01
0000
01
強制型別轉換:
語法: (目標型別)帶轉換變數
(目標型別)帶轉換表示式
大多數用於函式呼叫期間,實參給形參傳值。
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 迴圈:
無論如何先執行迴圈體一次。然後在判斷是否繼續迴圈。
dowhile
(條件判別表示式)
;
練習:求水仙花數。 乙個三位數。各個位上的數字的立方和等於本數字。 234 861
100
--999
int num =
100;
個位數: int a = num %
10; a*a*a;
十位數: int b = num /10%
10;
百位數: int c = num /
100;
第三天知識總結
字串的重點內容 將int轉化為二進位制的最少位數 a 2a1 a.bit length print a1 a2 3a3 a2.bit length print a3 bool int的例子 重點理解 while true pass while 1 效率高點 pass str bool s false...
線性表知識點總結一(第三天)
1.線性表 list 定義 由零個 稱為空表 或多個資料元素組成的 有限序列。資料型別 是指由一組性質相同的值得集合及定義在此集合上的一些操作的總稱 資料型別分為原子型別 不可再分解的基本型別 和結構型別 由若干個型別組合而成 抽象 抽取出事物的普遍性本質。資料 線性表的資料物件集合為,每個元素型別...
go語言基礎知識學習第三天
第乙個 int 是表示arrayzor是乙個列表 第二個 int 是表示返回結果是乙個列表 func bubblesort arrayzor int int 返回經過排序後的列表 return arrayzor 通過中間值來交換兩個資料 新建乙個變數tmp來交換元素 元素是插入到一段已經排好序的列表...