一驮配、C基本變量及語法
1.c的引入
#include<stdio.h>
int main(int argc,char *argv[])
{
printf("hello!\n");
return 0;
}
程序解析:
#:預(yù)處理命令
include:頭文件的包含
<>:把括號(hào)里面的文件內(nèi)容引入到源文件中
stdio.h:頭文件,是計(jì)算機(jī)自帶的庫(kù)初烘,可以直接使用
main:函數(shù)名,main()是主函數(shù),C程序有且只有一個(gè)
main()即主函數(shù)!凸克!c程序的入口,即所有的c程序都是從main()開始執(zhí)行
int argc:參數(shù)的個(gè)數(shù)
char *argv[]:記錄參數(shù)
printf():是庫(kù)函數(shù)灼伤,包含在<stdio.h>中触徐,按一定的格式輸出
return 0:返回,或者函數(shù)結(jié)束
注:此程序基本決定了c程序的框架
2.c的數(shù)據(jù)類型
基本數(shù)據(jù)類型:
整型數(shù)據(jù)
int:基本整型數(shù)據(jù)
short int:短整型
long int:長(zhǎng)整型
unsigned:無符號(hào)
signed:有符號(hào)
字符型數(shù)據(jù):char
字符:由''引起來的單個(gè)字母狐赡,數(shù)字或其它符號(hào)
getchar():獲取單個(gè)字符
putchar():輸出單個(gè)字符
實(shí)型(浮點(diǎn)型)數(shù)據(jù):
float:?jiǎn)尉? 有效位:七位左右
double:雙精度 有效位:十五為左右
numf e/E n
n:一定是整數(shù)
new_numf = numf * 10^n;
枚舉類型:enum
構(gòu)造數(shù)據(jù)類型:
數(shù)組類型撞鹉,結(jié)構(gòu)體(struct),聯(lián)合體(union)
指針類型:
空類型:void
3.變量的定義
data:數(shù)據(jù)
type:類型
value:值
(1)DataType Name1,Name2,Name3,....,Namen;
可以定義多個(gè)變量颖侄,中間用逗號(hào)隔開鸟雏,結(jié)尾用分號(hào)結(jié)束。
(2)DataType Name;
DataType Name1;
(3)建議一行定義一個(gè)變量并初始化
DataType Name = value;
4.標(biāo)識(shí)符
包括變量名览祖,函數(shù)名孝鹊,及其它標(biāo)號(hào)等
(1)標(biāo)識(shí)符的命名要求
字母(A~Z,a~z)展蒂,下劃線(_),數(shù)字組成又活,
且規(guī)定:第一個(gè)字符不能為數(shù)字!C痰俊柳骄!
(2)命名規(guī)則
可讀性要高,做到“見名知意”
駝峰命名法(百度等)
盡量不要用漢語拼音;恪D褪怼!
5.格式輸入/輸出:printf()/scanf()
(1)printf()
按一定格式輸出:
printf("占位符",參數(shù)列表)曲初;
一一對(duì)應(yīng)
%m.nf(右對(duì)齊):m是總位數(shù)体谒;n是小數(shù)位數(shù)(保留多少位)
%-m.nf(左對(duì)齊)
(2)scanf()
按一定格式輸入:
scanf("占位符",參數(shù)列表)臼婆;
一一對(duì)應(yīng)
&:取地址符號(hào)
占位符:
printf() scanf()
int %d %d
char %c %c
long %ld %ld
float %f %f
double %lf %lf
字符串 %s
6.常量
數(shù)字常量:1 2 3...
字符常量:'1''a'...
實(shí)型常量:1.212 21.32......
字符串常量:由雙引號(hào)括起來的字符序列(由一個(gè)或多個(gè)字符組成)
注意:字符串和字符的區(qū)別J阊鳌!颁褂!
'\0':字符串的結(jié)束標(biāo)志评汰,一般不顯示
7.變量和常量的區(qū)別:
變量:其值可以更改!
先定義痢虹,后使用
常量:其值不可更改
隨時(shí)可以使用,無需定義或聲明
變量的初始化:
變量名 = 常量主儡; 注:類型一定要一致=蔽ā!糜值!
二丰捷、運(yùn)算符
1.sizeof()
計(jì)算大小,得出對(duì)應(yīng)變量或數(shù)據(jù)類型所占內(nèi)存空間大小
單位:字節(jié)(byte) 1字節(jié) = 8位(bit)
(1)sizeof DataType:
64位機(jī)下:
sizeof(char) = 1
sizeof(int) = 4
sizeof(short) = 2
sizeof(long) = 8
sizeof(float) = 4
sizeof(double = 8
32位機(jī)下:
同64位機(jī)只有l(wèi)ong大小不一致
sizeof(long) = 4
(2)對(duì)應(yīng)變量的內(nèi)存大屑呕恪:
sizeof(ch) = 1
sizeof(short_size) = 2
sizeof(int_size) = 4
sizeof(long_size) = 8
sizeof(float_size) = 4
size(double_size) = 8
注意(1)(2)的結(jié)果病往,對(duì)比數(shù)據(jù)類型所占大小,和其定義的變量所占內(nèi)存的大小
2.算數(shù)運(yùn)算符(七個(gè))
加+ 減- 乘* 除/ 取余%
自增:++:i++:先取值后自增
++i:先自增后取值
自減:--:i--:先取值后自減
--i:先自減后取值
3.關(guān)系運(yùn)算符
大于:>
小于:<
等于等于:==
大于等于:>=
小于等于:<=
不等于:!=
4.逗號(hào)運(yùn)算符(,)
表達(dá)式1骄瓣,表達(dá)式2停巷,表達(dá)式3,榕栏,畔勤,,
其中每個(gè)表達(dá)式又可以是一個(gè)逗號(hào)表達(dá)式扒磁!
依次計(jì)算表達(dá)式1,2,3的值整個(gè)逗號(hào)表達(dá)式的值取決于最后一個(gè)表達(dá)式的值庆揪。
5.使用scanf()注意事項(xiàng)
(1)一定要嚴(yán)格按照scanf()中的格式輸入變量的值!7镣小缸榛!
(2)使用scanf()時(shí),取參數(shù)列表中的參數(shù)地址兰伤,scanf()是將輸入的值保存到變量對(duì)應(yīng)的地址中
(3)緩存區(qū)問題
scanf()函數(shù)中不能使用換行符:'\n'