關(guān)鍵字
- C語言提供的有特殊含義的符號 也叫做"保留字" 一共32個
- 作用:表示或?qū)崿F(xiàn)一些功能
- 注意:
全部是小寫
標(biāo)識符
- 在程序中自定義的一些符號和名稱
- 作用:給函數(shù)草慧、數(shù)據(jù)取名 方便區(qū)分
- 范圍:26個字母黔宛、0-9波岛、下劃線“_”組成
- 注意:
1.不能以數(shù)字開頭 2.不能與關(guān)鍵字重名 3.嚴(yán)格區(qū)分大小寫
- 命名方式:駝峰命名法
數(shù)據(jù)
數(shù)據(jù)就是數(shù)值
用途:對數(shù)據(jù)進行操作使用時
1.靜態(tài)數(shù)據(jù) :斷電還在
-
2.動態(tài)數(shù)據(jù) :加載到內(nèi)存中的,斷電就沒了
1byte=8bit 1KB=1024byte 1MB=1024KB 1GB=1024MB
常量
數(shù)據(jù)類型:
- 基本類型: 整型、浮點型、字符類型
- 構(gòu)造類型: 數(shù)組七嫌、結(jié)構(gòu)體、共用體
- 指針類型
- 空類型
float:單精度浮點型苞慢,精確度到小數(shù)點后7位
double:雙精度浮點型诵原,小數(shù)點后15位
printf用法
%d 整型
%c 字符型
%f 浮點型
%p 地址
&lu 配合sizeof使用 查看變量在內(nèi)存中所占用的字節(jié)
printf("輸出整型數(shù)據(jù)%d",int);
printf("輸出浮點型數(shù)據(jù)%f",double);
printf("輸出字符型數(shù)據(jù)%c",'c');
printf("輸出變量在內(nèi)存中的地址%p",&int);
printf("查看變量在內(nèi)存中占用的字節(jié)數(shù)%lu",sizeof(int));
變量的作用域
- 變量的作用域只在對應(yīng)的代碼塊中(相鄰的兩個大括號)
- 不同函數(shù)屬于平行作用域
- 同一個作用域中不能出現(xiàn)同名的變量
- 不同作用域下變量名可以相同
- 變量只在自己的作用域內(nèi)有效,出了作用域變量占用的內(nèi)存被釋放掉了
- 作用域可以無限嵌套
子作用域可以使用父作用域中的變量.父作用域無法使用子作用域中的變量.
int main(){
{
int a = 33;
printf("%d\n",a); // 這里a = 33
}
int a;
int b;
a = b = 33;
{
int a = 88;
a++;
printf("a = %d\n",a); //這里a = 89
{
a++;
printf("%d\n",a); //a = 90 這個作用域沒有定義變量a 自動去上級作用域?qū)ふ易兞縜 并執(zhí)行a++
}
}
b++;
printf("a=%d,b=%d\n",a,b);//a = 33 , b = 34 上一個作用域中的a 使用完就被釋放掉了 所以這里的a還是main函數(shù)中的 33 .
}
變量的內(nèi)存分析
- 內(nèi)存占用的基本單位:byte(字節(jié)) 1byte = 8 bit
- 輸出內(nèi)存占用:
printf("int類型在內(nèi)存中占用的字節(jié)數(shù)為:%lu",sizeof(int));
- 輸出內(nèi)存地址:
int num;
printf("num在內(nèi)存中的地址:%p",&num);
- 從編號較大的內(nèi)存區(qū)域向編號較小的內(nèi)存區(qū)域分配
- 變量的地址是被分配的內(nèi)存塊中所有區(qū)域的最小值
scanf函數(shù)用法
- 在<stdio.h>庫中
- 把用戶按指定格式從鍵盤上輸入的數(shù)據(jù)賦值給指定的變量
scanf("%d",&i);
- 需要賦值的變量前面加取址符
&
- 兩個
%
之間的內(nèi)容要按原樣輸入 - 不能用\n換行
- printf函數(shù)的參數(shù)是變量名,scanf函數(shù)的參數(shù)是變量的地址
算數(shù)運算符
-
+
,-
,*
,/
,%
- 用于數(shù)據(jù)的運算
- 精度 double > float > int
- 取余運算符
%
只能用于整數(shù) - 運算時兩個數(shù)據(jù)精度不一樣,低精度數(shù)據(jù)會自動轉(zhuǎn)換為高精度
- 同精度運算只能得到同精度的結(jié)果,需要提高精度需要強制類型轉(zhuǎn)換
double d = 2/3;//賦值后d為0
解決辦法:
double d = (double)2/3;//d = 0.666
double d = 2.0/3;//d = 0.666
賦值及自增自減運算
-
=
賦值運算符 -
++
--
自增自減運算
a++;//a = a + 1
a--;//a = a - 1
-
+=
-=
加減等于運算符
a += 1;// a = a + 1
a -= 1;// a = a - 1
- ++a a++的區(qū)別
a++;//a先參與運算 再自增
++a;//a先自增 然后把結(jié)果參與運算
sizeof用法
- 單目操作符
- 以字節(jié)形式給出其操作數(shù)或數(shù)據(jù)類型的存儲大小
- 打印數(shù)據(jù)類型的字節(jié)時需要加( ),打印常量或變量的時候可以不用
printf("%lu\n",sizeof (int));//4
b = sizeof 'a';