數(shù)據(jù)
一酵镜、是什么?
數(shù)據(jù)就是數(shù)值.數(shù)據(jù)有很多種,最簡單的就是數(shù)字.數(shù)據(jù)也可以是 文字,圖像,聲音等
二蚜点、有什么用?
保存我們的記錄,用于以后使用
三覆醇、怎么用?
由0和1組成,用設(shè)備存儲(chǔ)
四、什么時(shí)候用?
當(dāng)你需要對(duì)數(shù)據(jù)進(jìn)行操作使用時(shí)
五毫胜、有什么特點(diǎn)?
1.分為靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)(內(nèi)存)
2.只由0和1組成
3.最小單位是bit
1byte字節(jié)=8bit
常量
一狂打、是什么?
是一些固定的數(shù)據(jù),有四大類型;整型 ?浮點(diǎn)型(單行度和雙精度) ?字符型 ? 字符串型
二擂煞、有什么用?
表示一些固定不變的數(shù)據(jù)
三、怎么用?
字面常量.
比如: 1 //整型字面常量 ?1.0f //單精度字面常量
'a' //字符字面常量(只能是一個(gè)非中文字符) ?"hello world"字符串字面常量
字符串常量與字符常量不同的地方是,字符串常量是用""把字符串括起來,所以'a'和"a"是不一 樣的,而且系統(tǒng)會(huì)在字符串常量的末尾自動(dòng)加一個(gè)字符串結(jié)束標(biāo)志('\0')趴乡。
符號(hào)常量(也叫常變量):即用一個(gè)標(biāo)識(shí)符來表示常量,一般用const來指明
如 :constint ?MAX_SIZE = 365;//定義一個(gè)符號(hào)常量MAX_SIZE.
也可以使用宏定義,通過預(yù)處理指令來替換符號(hào)常量
如:上面的MAX_SIZE可以寫成#define MAX_SIZE ?365
四对省、什么時(shí)候用?
當(dāng)需要給變量賦值或者定義一個(gè)不變的數(shù)據(jù)
五、有什么特點(diǎn)?
數(shù)據(jù)不會(huì)被改變!
變量
一晾捏、是什么?
變量來源于數(shù)學(xué),是計(jì)算機(jī)語言中能存儲(chǔ)計(jì)算結(jié)果或 者能表示 值抽象概念
變量是內(nèi)存的一塊兒存儲(chǔ)單元用來存儲(chǔ)經(jīng)常變化的數(shù)據(jù)
變量由兩要素構(gòu)成:變量名與變量類型蒿涎。
變量類型+變量名 = 變量
二、有什么用?
用來表示一個(gè)需要改變或者不確定的數(shù)據(jù)
變量分為全局變量,局部變量惦辛。全局變量定義在函數(shù)外部,程序開始到結(jié)束都一直在,而局部 變量定義在函數(shù)內(nèi)部,只能供函數(shù)使用,在函數(shù)內(nèi)部有效
三劳秋、怎么用?
變量類型+變量名 ?如;int num;
賦值: ?num = 1; 修改 num = 2;
四、什么時(shí)候用?
需要定義一個(gè)經(jīng)常改變或者不確定的數(shù)據(jù)
五胖齐、有什么特點(diǎn)?
1.創(chuàng)建一個(gè)變量相當(dāng)于在內(nèi)存中占用了一塊空間
2.這個(gè)空間的大小是固定的,但是里面的數(shù)據(jù)可以改變
3.同一個(gè)作用域內(nèi)不能有相同的變量名
4.初始化時(shí)創(chuàng)建,在函數(shù)作用域執(zhí)行完后失效,且內(nèi)存空間釋放
變量輸出及printf函數(shù)用法
一玻淑、是什么?
C語言下的printf()函數(shù)是樣式化輸出函數(shù),由C語言自帶的庫提供
二、有什么用?
在控制臺(tái)上按照你需要的格式輸出你定義的數(shù)據(jù)
三市怎、怎么用?
1.#include//引入頭文件,表示在這個(gè)文件里要用到里面的printf()函數(shù)
2.printf("<格式化字符串>",<參量表>)
3.格式化規(guī)定字符,以%開始 ?后面跟一個(gè)或幾個(gè)規(guī)定的字符
常用%d整數(shù), %f浮點(diǎn)數(shù) %c單個(gè)字符 ?%s字符串%p指針的值
四岁忘、什么時(shí)候用?
當(dāng)你想輸出結(jié)果的時(shí)候
五、有什么特點(diǎn)?
1.可以單個(gè)輸出,也可以加批量輸出,以逗號(hào)分割
2.格式化是%開始. ?%前面可以加任意的字符串,會(huì)按原樣輸出.
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面對(duì)組成格式說明的各項(xiàng)加以說明:
1%:表示格式說明的起始符號(hào),不可缺少区匠。
2-:有-表示左對(duì)齊輸出(右側(cè)補(bǔ)空格),如省略表示右對(duì)齊輸出(左側(cè)補(bǔ)空格)干像。
30:有0表示指定空位填0,如省略表示指定空位不填。
4m.n:m指域?qū)?即對(duì)應(yīng)的輸出項(xiàng)在輸出設(shè)備上所占的字符數(shù)驰弄。N指精度麻汰。用于說明輸出的實(shí)型 數(shù)的小數(shù)位數(shù)。對(duì)數(shù)值型的來說,未指定n時(shí),隱含的精度為n=6位戚篙。
5l或h:l對(duì)整型指long型,對(duì)實(shí)型指double型五鲫。h用于將整型的格式字符修正為short型。
格式字符 格式字符用以指定輸出項(xiàng)的數(shù)據(jù)類型和輸出格式岔擂。1d格式:用來輸出十進(jìn)制整數(shù)位喂。有以下幾種用法:%ld:輸出長整型數(shù)據(jù)浪耘。
2o格式:以無符號(hào)八進(jìn)制形式輸出整數(shù)。對(duì)長整型可以用"%lo"格式輸出塑崖。同樣也可以指定字段寬 度用“%mo”格式輸出七冲。
例:
main()
{ int a = -1; printf("%d, %o", a, a);
}
運(yùn)行結(jié)果:-1,177777程序解析:-1在內(nèi)存單元中(以補(bǔ)碼形式存放)為(1111111111111111)2,轉(zhuǎn)換為八進(jìn)制數(shù)為 (177777)8。
3x格式:以無符號(hào)十六進(jìn)制形式輸出整數(shù)规婆。對(duì)長整型可以用"%lx"格式輸出澜躺。同樣也可以指定字段 寬度用"%mx"格式輸出。
4u格式:以無符號(hào)十進(jìn)制形式輸出整數(shù)抒蚜。對(duì)長整型可以用"%lu"格式輸出掘鄙。同樣也可以指定字段寬 度用“%mu”格式輸出。
5c格式:輸出一個(gè)字符嗡髓。
6s格式:用來輸出一個(gè)串操漠。有幾中用法
%s:例如:printf("%s", "CHINA")輸出"CHINA"字符串(不包括雙引號(hào))。%ms:輸出的字符串占m列,如字符串本身長度大于m,則突破獲m的限制,將字符串全部輸出器贩。若串 長小于m,則左補(bǔ)空格颅夺。
%-ms:如果串長小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。%m.ns:輸出占m列,但只取字符串中左端n個(gè)字符蛹稍。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格,注 意:如果n未指定,默認(rèn)為0吧黄。%-m.ns:其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格唆姐。如果n>m,則自動(dòng)取n 值,即保證n個(gè)字符正常輸出,注意:如果n未指定,默認(rèn)為0拗慨。
如果是sprintf(desc, "%m.ns", sour); 如果desc空間夠的話,會(huì)在%m.ns 串 的結(jié)尾自動(dòng)補(bǔ)null 字符,不同于strncpy。
例如 :sprintf(desc, "%.3s", "123456");desc如果空間>=4字節(jié)的話,第4個(gè)字節(jié)將是null字 符奉芦。
%f輸出精度: 7個(gè)有效數(shù)字,小數(shù)點(diǎn)后8位.
變量的初始化
int a; //不會(huì)報(bào)錯(cuò),a里面存的內(nèi)容:
1)隨機(jī)數(shù)
2)上次程序分配的存儲(chǔ)空間,存數(shù)一些 內(nèi)容,“垃圾”
3)系統(tǒng)正在用的一些數(shù)據(jù)
1)定義的同時(shí)進(jìn)行初始化
int a = 10;
int a,b=10; //部分初始化
int a=4,b=2;
2)先定義,后初始化
int a;
a = 10;
3)使用一個(gè)變量進(jìn)行初始化
int a;
int b = 10;
a = b; //使用b去初始化a
4)還可以批量的進(jìn)行初始化
int a,b,c;
a = b =c =0;
注意: 變量的第一次賦值被成為稱為初始化,以后再賦值相當(dāng)于覆蓋了上一次的值
變量的使用:
注意:
(1)賦值的時(shí)候,= 號(hào)的左側(cè)必須是變量(10=b,錯(cuò))
(2)規(guī)范:習(xí)慣將 = 的兩側(cè) 各加上一個(gè) 空格
變量作用域:
C語言中所有變量都有自己的作用域,申明變量的類型不同,其作用域也不同赵抢。C語言中的變 量,按照作用域的范圍可分為兩種, 即局部變量和全局變量。
局部變量
關(guān)于局部變量的作用域還要說明以下幾點(diǎn):
(1)主函數(shù)中定義的變量也只能在主函數(shù)中使用,不能在其它函數(shù)中使用声功。同時(shí),主函數(shù)中 也不能使用其它函數(shù)中定義的變量烦却。因?yàn)橹骱瘮?shù)也是一個(gè)函數(shù),它與其它函數(shù)是平行關(guān)系。
(2)形參變量是屬于被調(diào)函數(shù)的局部變量,實(shí)參變量是屬于主調(diào)函數(shù)的局部變量先巴。
(3)允許在不同的函數(shù)中使用相同的變量名,它們代表不同的對(duì)象,分配不同的單元,互不 干擾,也不會(huì)發(fā)生混淆其爵。雖然允許在不同的函數(shù)中使用相同的變量名,但是為了使程序明了易 懂,不 提倡在不同的函數(shù)中使用相同的變量名
全局變量
全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。
全局變量的說明符號(hào)為 extern
對(duì)于全局變量還有以下幾點(diǎn)說明:1.對(duì)于局部變量的定義和說明,可以不加區(qū)分伸蚯。而對(duì)于外部變量則不然,外部變量的定義和外部變量的說明并不是一回事摩渺。外部變量定義必須在所有的函數(shù)之外,且只能定義一次。其一般形式為: [extern] 類型說明符 變量名,變量名... 其中方括號(hào)內(nèi)的extern可以省去不寫剂邮。
例如: int a,b;等效于:extern int a,b;
2.而外部變量說明出現(xiàn)在要使用該外部變量的各個(gè)函數(shù)內(nèi),在整個(gè)程序內(nèi),可能出現(xiàn)多次,外部變量說明的一般形式為: extern 類型說明符 變量名,變量名,...; 外部變量在定義時(shí)就已分配了內(nèi)存單元,外部變量定義可作初始賦值,外部變量說明不能再賦初始值, 只是表明在函數(shù)內(nèi)要使用某外部變量摇幻。
3.外部變量可加強(qiáng)函數(shù)模塊之間的數(shù)據(jù)聯(lián)系,但是又使函數(shù)要依賴這些變量,因而使得函數(shù)的
獨(dú)立性降低。從模塊化程序設(shè)計(jì)的觀點(diǎn)來看這是不利的, 因此在不必要時(shí)盡量不要使用全局變量。
4.在同一源文件中,允許全局變量和局部變量同名绰姻。在局部變量的作用域內(nèi),全局變量不起作用(就近原則).
為了合理的使用內(nèi)存空間,所以變量一定要區(qū)分類型