1.計(jì)算機(jī)三大件
cpu:中央處理器,處理數(shù)據(jù)的。負(fù)責(zé)計(jì)算,協(xié)調(diào)其他硬件相互和諧的工作。
內(nèi)存:存儲(chǔ)數(shù)據(jù)的,臨時(shí)存儲(chǔ)數(shù)據(jù)。
臨時(shí)存儲(chǔ),但是存取小區(qū)相對(duì)較高
電子式
硬盤:存儲(chǔ)數(shù)據(jù)的,永久存儲(chǔ)數(shù)據(jù)。
永久存儲(chǔ),但是存取效率相對(duì)低下
機(jī)械式
2.程序是如何運(yùn)行的
程序在運(yùn)行之前是存儲(chǔ)在硬盤之中的
當(dāng)我們運(yùn)行的程序的時(shí)候,cpu會(huì)將程序從硬盤中復(fù)制到內(nèi)存中
cpu在讀取內(nèi)存中的程序代碼
why?
因?yàn)閮?nèi)存中的數(shù)據(jù)讀取效率更高
1.思考一個(gè)問題
將qq程序運(yùn)行起來
qq程序在運(yùn)行之前存儲(chǔ)在硬盤中,當(dāng)我們運(yùn)行qq程序以后
這個(gè)程序就被運(yùn)行在內(nèi)存中
2.當(dāng)年我們點(diǎn)擊等率按鈕qq程序做的事情
1)。讀取輸入的qq密碼
2)。讀取輸入的qq密碼
3)。講讀取到的好嘛和密碼發(fā)送給騰訊的服務(wù)器
請(qǐng)思考:
在qq軟件將qq好嘛和密碼發(fā)送給騰訊服務(wù)器之前,這個(gè)qq程序需不需要將好嘛和密碼存儲(chǔ)一下
答案是肯定的。
肯定需要將這些數(shù)據(jù)存儲(chǔ)起來,如果自己不存儲(chǔ)起來,那么如何處理呢
程序就是在處理數(shù)據(jù)
3.思考三個(gè)問題
程序如何處理數(shù)據(jù)?
1)。程序自己要不要把這些數(shù)據(jù)存儲(chǔ)起來
肯定要。自己不存儲(chǔ)起來如何處理呢
2)。儲(chǔ)存在什么地方?
內(nèi)存?因?yàn)槌绦蜃约壕驮趦?nèi)存中。
3)。怎么存?
4.如何將數(shù)據(jù)存儲(chǔ)在內(nèi)存中
1)。我們?yōu)槭裁匆鎯?chǔ)數(shù)據(jù)?
因?yàn)檫@個(gè)數(shù)據(jù)我們后面要用
2)。如何將數(shù)據(jù)存儲(chǔ)在內(nèi)存中。
現(xiàn)在內(nèi)存中挖一個(gè)坑,然后將這個(gè)數(shù)據(jù)存儲(chǔ)在這個(gè)坑中,當(dāng)我們先用這個(gè)數(shù)據(jù)的時(shí)候,只要找到這個(gè)坑就可以使用儲(chǔ)存在坑中的數(shù)據(jù)了。
3)。每一個(gè)坑在內(nèi)存中都有一個(gè)獨(dú)一無二的地址。是一個(gè)十六進(jìn)制的標(biāo)識(shí),0x。。。。
通過這個(gè)地址就可以找到這個(gè)坑,使用這個(gè)坑的數(shù)據(jù)。
然后地址是很難記憶的,為了解決這個(gè)問題,我們給這個(gè)坑起一個(gè)別名,我們?cè)谕诳拥臅r(shí)候,就要指定這個(gè)別名。
通過這個(gè)別名就可以找到這個(gè)坑,并且使用坑中的數(shù)據(jù)。
挖坑的同時(shí)
a。地址自動(dòng)就有了,系統(tǒng)自動(dòng)分配
b。要自己指定這個(gè)坑的別名
4)。在挖坑的時(shí)候必須要指定類型
坑的類型決定的可以玩這個(gè)坑中存儲(chǔ)數(shù)據(jù)的類型。
如果指定這個(gè)坑是一個(gè)整型坑,如果玩這個(gè)坑里面存儲(chǔ)一個(gè)非整型數(shù)據(jù),可能會(huì)坑毀人亡。
5)。常見的坑的類型
int float double char
你只需要知道一件事情。他們只是坑的四種類型,你只需要知道當(dāng)坑的內(nèi)飾使他們的時(shí)候,坑中可以儲(chǔ)存什么數(shù)據(jù)
如果坑的類型是int類型 那么這個(gè)坑中可以存儲(chǔ)什么數(shù)據(jù)
如果坑的類型是int類型 那么這個(gè)坑中可以存儲(chǔ) -2147483648 ~ +2147483648 之間的證書
如果儲(chǔ)存的數(shù)據(jù)不是這個(gè)范圍的數(shù)就會(huì)有問題。
如果坑的類型是float類型 那么這個(gè)坑中可以儲(chǔ)存有效位數(shù)不超過7位的小數(shù)。
有效位數(shù),去掉小數(shù)點(diǎn)。的位數(shù)。12.123 45.1234567
如果你玩其中儲(chǔ)存的小數(shù)有效位數(shù)超過了七位,那么超出的無法精確存儲(chǔ),可能是隨機(jī)數(shù)
如果坑的類型是doubel類型,那么這個(gè)墾種可以存儲(chǔ)郵箱位數(shù)不超過16位的小數(shù)
如果你往其中儲(chǔ)存的小數(shù)有效位數(shù)超過了16位,那么超出的無法精確存儲(chǔ),只能精確存儲(chǔ)前面的16位。
如果坑的類型是char類型,只能儲(chǔ)存當(dāng)個(gè)支付,a b c d x
6)。如果有數(shù)據(jù)想要儲(chǔ)存在內(nèi)存當(dāng)中
a。想看數(shù)據(jù),看數(shù)據(jù)是一個(gè)什么類型
80
b。根據(jù)數(shù)據(jù)想要的類型挖坑
int num
5.在內(nèi)存中存儲(chǔ)數(shù)據(jù)的專業(yè)話術(shù)。
如果我們要在內(nèi)存中存儲(chǔ)數(shù)據(jù)。
1)。就要現(xiàn)在內(nèi)存中 開辟 一塊控件。
2)。在開辟這個(gè)空間的同事,要指定這個(gè)空間的別名和類型。
3)這個(gè)空間的類型決定了 這個(gè)空間可以儲(chǔ)存的數(shù)據(jù)的類型
常見的空間類型 :int 整型
float 單精度浮點(diǎn)型
double 雙精度浮點(diǎn)型
char 字符型
float 和double 同城浮點(diǎn)型或者實(shí)型
6。變量
1)。變量:變量就是內(nèi)存中開辟的用來儲(chǔ)存數(shù)據(jù)的那塊空間,所以變量是用來儲(chǔ)存數(shù)據(jù)的的
變量的值:儲(chǔ)存在變量所代表的的那塊空間中的數(shù)據(jù)。叫做變量的值。
變量的名稱:為變量所代表的那塊空間取的別名,叫做變量的名稱。
變量的類型:變量說代表的那塊空間的類型 就叫做變量的類型
變量的本質(zhì):在內(nèi)存中儲(chǔ)存數(shù)據(jù)的那塊空間
2)。如果我們要在內(nèi)存中儲(chǔ)存數(shù)據(jù),就只需要聲明一個(gè)變量
聲明一個(gè)變量,其實(shí)就是在內(nèi)存中開辟了一塊控件來儲(chǔ)存數(shù)據(jù)
3)。如何聲明變量
數(shù)據(jù)類型 變量名稱
數(shù)據(jù)類型就是我們剛說的空間類型: int float double char
變量的名稱基本上我們可以隨意
int num
當(dāng)cpu執(zhí)行這句代碼的時(shí)候,cpu會(huì)在內(nèi)存中開辟一塊空間 控件的類型是int 空間的名字是num
用這個(gè)空間來儲(chǔ)存數(shù)據(jù)
因?yàn)檫@個(gè)空間是int類型的,所以這個(gè)空間只能儲(chǔ)存 -2147483648 ~ +2147483648 之間的整數(shù)
否則坑毀人亡
float num
當(dāng)cpu執(zhí)行這句代碼的時(shí)候,cpu會(huì)在內(nèi)存中開辟一塊空間 控件的類型是float 空間的名字是num
用這個(gè)空間來儲(chǔ)存數(shù)據(jù)
因?yàn)檫@個(gè)空間是int類型的,所以這個(gè)空間只能精確儲(chǔ)存有效位數(shù)不超過7位的小數(shù)
否則坑毀人亡
double num
當(dāng)cpu執(zhí)行這句代碼的時(shí)候,cpu會(huì)在內(nèi)存中開辟一塊空間 控件的類型是double 空間的名字是num
用這個(gè)空間來儲(chǔ)存數(shù)據(jù)
因?yàn)檫@個(gè)空間是double類型的,所以這個(gè)空間只能精確儲(chǔ)存郵箱位數(shù)不超過16位的小數(shù)
否則坑毀人亡
char ch
當(dāng)cpu執(zhí)行這句代碼的時(shí)候,cpu會(huì)在內(nèi)存中開辟一塊空間 控件的類型是char 空間的名字是num
用這個(gè)空間來儲(chǔ)存數(shù)據(jù)
因?yàn)檫@個(gè)空間是char類型的,所以只能儲(chǔ)存當(dāng)個(gè)字符
否則坑毀人亡
我們聲明一個(gè)變量,實(shí)際上就是在內(nèi)存中開辟一塊指定類型,指定別名的空間,變量就代表這個(gè)空間
7.往變量所代表的空間中儲(chǔ)存數(shù)據(jù)
格式語(yǔ)法
變量名 = 數(shù)據(jù);
int num;
num = 100;
1)。這個(gè)等號(hào)和你數(shù)學(xué)中的等號(hào)是完全不同的。
講座賦值符號(hào)。
賦值符號(hào)的作用;將右邊的數(shù)據(jù) 存儲(chǔ)到 左邊的變量所代表的空間中去
2)。為int類型的變量賦值
int num;
num =199;
因?yàn)樽兞康念愋褪莍nt類型,所以為int變量賦值的時(shí)候,賦值的數(shù)據(jù)不能超過指定的范圍。
a。如果給的數(shù)據(jù)太大,直接爆語(yǔ)法錯(cuò)誤。
b。如果我們?yōu)閕nt變量賦值了一個(gè)小數(shù),只會(huì)存儲(chǔ)這個(gè)小數(shù)的證書部分,不會(huì)做四舍五入
c。如果給的數(shù)據(jù)超過的范圍并不多,這個(gè)時(shí)候儲(chǔ)存的是隨機(jī)值。
3)。為float賦值
a。在c語(yǔ)言中,我們直接寫一個(gè)小數(shù)(12.12),那么這小數(shù)的類型是double類型
如果我們就是小數(shù)就是一個(gè)小數(shù),那么我們?cè)谛?shù)后面加f(12.12)
記住著這句話,為float變量賦值的時(shí)候,賦值的小數(shù)后面要加一個(gè)f
b。float只能精確保存的小數(shù)不超過7位小數(shù)。
如果賦值的數(shù)據(jù)有效位數(shù)超過了7位,那么超出的部分就不會(huì)精確保存
4).為double賦值
a。在c語(yǔ)言中如果我們直接寫一個(gè)小數(shù),那么這個(gè)小數(shù)的類型就是double類型,所以可以直接建一個(gè)小數(shù)賦值給一個(gè)double變量。
b。double只能精確保存的小數(shù)不超過7位小數(shù)。
如果賦值的數(shù)據(jù)有效位數(shù)超過了7位,那么超出的部分就不會(huì)精確保存
5)。為char賦值
a.char變量中只能儲(chǔ)存一個(gè)字符,并且要用單引號(hào)引起來。
b。給的字符太多,保存最后一個(gè)。
c??崭褚彩亲址?br>
d。char變量中無法儲(chǔ)存中文,
在c語(yǔ)言中一個(gè)中文字符占三個(gè)字節(jié),char變量占一個(gè)字節(jié)。
8.如何使用儲(chǔ)存在變量中的數(shù)據(jù)
直接寫上變量的名字就可以使用了
1)。使用變量的值最常見的方式,是將變量的值輸出
2)。輸出變量的值
使用printf函數(shù)就可以輸出變量的值
a.格式1;
printf(“輸出信息”)
b。格式2:輸出變量的值
printf(“格式控件字符串”,變量列表)
在格式控制字符串中如果有地方要顯示變量的值,那么久使用一個(gè)占位符來占位
輸出的類型不同,它的占位符是不一樣的
如果輸出的變量類型是int類型的,那么就是 %d 占位符
int num;
num = 100;
printf(“num =%d\n”,num);
%d代表這個(gè)地方不要原樣輸出,二十輸出一個(gè)整型變量的值。那個(gè)整型變量了,你就把整型變量的名字寫在后面就可以了。
如果輸出變量的類型是float類型,那么使用%f占位符,默認(rèn)輸出小數(shù)點(diǎn)后6位
如果輸出變量的類型是double類型,那么使用%lf占位符,默認(rèn)輸出小數(shù)點(diǎn)后6位
如果輸出變量的類型是插入類型,那么使用%c占位符,
務(wù)必記住,哪一種輸出用哪一種占位符
3)。使用printf函數(shù)一次輸出多個(gè)變量值
后面一次寫上要占位的變量
注意:
a.后面的變量一定要按照順序來寫,因?yàn)樘钐煺嘉环臅r(shí)候是按照順序來的,否則就會(huì)混亂
b.后面的變量的個(gè)數(shù)要和掐面的一致,如果沒有變量填的就顯示隨機(jī)值。
9.使用變量注意的幾個(gè)細(xì)節(jié)問題
1)。既生double,又何生float?
double控件是float空間的兩倍大小,所以數(shù)據(jù)如果本身郵箱為數(shù)不超過7位的話,使用doubke來存儲(chǔ)就顯得浪費(fèi)
2)??梢月暶髯兞康耐瑫r(shí)賦值
int num = 10;
3)。如果聲明多個(gè)類型相同的變量,可以批量聲明
int num1 = 1; num2 =2; num3; num4;
4)。賦值語(yǔ)句規(guī)范
賦值等號(hào)的倆邊留空格號(hào)
5)。垃圾值
我們聲明一個(gè)變量,如果沒有為整個(gè)變量賦值,這個(gè)變量中是有值的
是一個(gè)隨機(jī)數(shù),并不一定是0,而是一個(gè)隨機(jī)數(shù)。
我們聲明一個(gè)變量,沒有為這個(gè)變量賦值,這個(gè)變量中是有值的,這個(gè)值講座垃圾值,值是不確定的。
所以為了保證我們的程序不會(huì)出現(xiàn)意想不到的問題。
要求聲明一個(gè)變量,就應(yīng)該為這個(gè)變量賦值一個(gè)初始值。
6)。變量可以重復(fù)賦值
為變量賦值的時(shí)候,如果變量中有值的,新值會(huì)叫舊值覆蓋掉。不會(huì)同時(shí)存在。
變量的特點(diǎn):喜新厭舊
7)。為變量賦值的時(shí)候,可以將一個(gè)變量的值賦值給另外一個(gè)變量
int num1= 10;
int num2 = num1;
這句話的意思:將num1的值賦值給num2
變量之間的賦值原理:
將源變量的值拷貝一份,將這個(gè)副本在賦值給目標(biāo)變量
int num2 = num1;
將num1變量的值賦值一份,建筑風(fēng)格復(fù)制 賦值給num2變量
所以num2變量的值是10 num1的值還在
8)。使用變量之前,保證已經(jīng)聲明。
9)。同一個(gè)變量不能重復(fù)定義
10.變量的命名規(guī)則。
變量的名稱是用工程師自己定義的。變量的命名必須遵守規(guī)范和規(guī)則
a。變量名只能以任意的字母、下劃線、$開頭,不能以數(shù)字卡頭
b。后面只能跟任意的字母,下劃線、$、數(shù)字
c。不能喝c的關(guān)鍵字重名
如 int;
d。c語(yǔ)言嚴(yán)格區(qū)分大小寫
int age; Age; aGe; agE; 是不同的變量
e。變量一定要先聲明,在使用。
f。在同一大括號(hào)之中,不允許定義多個(gè)變量名相同的變量。
同一個(gè)變量,在同一個(gè)大括弧之中,不允許重復(fù)定義
任意一點(diǎn)如果不遵守,直接報(bào)語(yǔ)法錯(cuò)誤。
2)。變量名的命名規(guī)范:你可以不遵守,編譯不會(huì)報(bào)錯(cuò),可以執(zhí)行,但是所有的程序員都在遵守。
a。變量的名字要取得有意義,別人一看變量名就知道這個(gè)變量中儲(chǔ)存的是什么數(shù)據(jù),知名達(dá)意。
b。如果名字是由多個(gè)單詞組成的,第一個(gè)單詞的首字母小寫,其他單詞首字母大寫。
是不是一個(gè)合格的程序員,看你時(shí)候遵守規(guī)范。
1)。勤寫注釋。
2)。變量的命名復(fù)合規(guī)范
3)。代碼擺整齊
printf函數(shù)的使用補(bǔ)充
1.printf的作用:想控制臺(tái)輸出信息
2.最簡(jiǎn)單的方法;
printf(“輸出信息”);
雙引號(hào)中的內(nèi)容就會(huì)直接打印
3.輸出變量的值。
務(wù)必要清楚占位符要使用哪一個(gè)占位符
int %d
float %f
double %lf
char %c
4.pritf函數(shù)的高級(jí)用法
1)。%d用來輸出int類型變量的值
a。%md m是一個(gè)整數(shù),指定輸出變量的值的位寬,輸出的變量的值占多少位。
%5d 代表輸出的整型一共占據(jù)了5位,
-> 如果變量的值小于5位,不足的地方就會(huì)以空格補(bǔ)齊
-> 如果變量的值大于5位,那么實(shí)際有多少就顯示多少
m可以是一個(gè)負(fù)數(shù),
-> 如果變量的值小于了指定的位數(shù),不足的地方就會(huì)以空格在后面補(bǔ)齊
b。%0md m是一個(gè)證書
不足的地方就會(huì)以0不起
2)。%f和%lf補(bǔ)充。
a。默認(rèn)情況下,只會(huì)輸出小數(shù)點(diǎn)后面的6位,指定輸出小數(shù)點(diǎn)后面的位數(shù)。
%nf或者%nlf n是一個(gè)數(shù)字,代表要輸出小數(shù)點(diǎn)后面多少位