c语言 bool_程序的数据要放到哪里呢?|C语言第二篇
在C語言第一篇里我寫到了編譯器,在這里補充一個點,文本編輯器,編譯器,IDE(集成開發環境)的區別。
文本編輯器是用作編寫普通文字的應用軟件,如window的記事本,atom,sublime,它常用來編寫程序的源代碼。?編譯器是將“一種語言(通常為高級語言)”翻譯為“另一種語言(通常為低級語言)”的程序,有gcc,g++。?IDE是可以編輯代碼且可以將代碼編輯器,編譯器,調試器,圖形界面等結合起來的一個集成的應用程序,如Visual Stdio,DevC++等,但口頭上我們經常直接將IDE說成了編譯器。
在上篇內容中我們講到 #include,我們將這個比作鑰匙區打開倉庫拿工具。在專業術語中,#include是一個預處理器指令,作用是把stdio.h的內容“復制”,“粘貼”,到代碼中去。
那么問題來了,"stdio.h"里面有什么呢?.h代表的是文件擴展名也指?C語言的頭文件。stdio.h的全稱是standard input output header——標準輸入輸出頭文件。有了這個文件我們可以對數據進行輸入(scanf)輸出(printf)。這個輸入和輸出的內容數據和這篇文章的重點變量有關系。
數據的載體——變量簡介
變量存放的是數據。標題的答案:程序的數據要放到變量里。C的變量的類型可以分為好幾種,整數型,浮點型,字符型,布爾型…
整數型:顧名思義就是存放整數的類型,主要有int,long (int),long long (int)。
int?在32位和64位的電腦占有四個字節,可以存放2^31-1個不一樣的數字。而long,long long我們只要知道它們比int?大就可以了。對于整數型,還有?short (int)?這個類型占的字節比int小,可以放的數字也就比int少了。要怎么使用那么多不同的類型呢?在生活中,程序在不同機器上運行,有些例如單片機的空間小,需要節約空間,就可以用short類型,在電腦上,空間大,我們就一般用int。如果要儲存的數據很大,也要用long等數據了~
浮點型:?存放的是數學中的小數,有單精度float,雙精度double等。float可以記錄小數點后六位的數,double可以記錄小數點后15位。浮點型也可以用科學記數法表示:4e16表示4*10^16。e以及后面的數字合起來就是10的幾次方。
字符型:?可以放的就是字符啦!有char。可以放字母,符號,數字等,占有的字節是1字符。且只能是一個如'1','2','c'......像'abc','123'這些就不能用字符型來儲存了,它們有一個別的名字叫做字符串。之后會發推文講的~
還有一種很簡單很好用的類型布爾型bool:這種類型表示的是真假也可以說是true和false,經常在編程中我們拿來判斷這個條件是不是完成了的。
變量的聲明
咦?聲明是什么?聲明就是告訴計算機,你在哪要什么類型的變量,然后讓這個變量存在。關于聲明,我們可以把變量聲明為各種各樣的除了C語言關鍵字之外的名字,如a,b,c,x,y,z,flag,name.....
圖片來源:百度百科
我們只需要記住幾種經常用的,其他編譯器會告訴我們的
上代碼吧!!!
ps:"//"表示的是注釋,編譯器是跳過這個的,后面的內容是給程序員看的
#include int main(){ int a,b,c=0; float x,y,z=1.2; char ch='h'; bool flag=1; scanf("%d %d\n",&a,&b);//輸入整數????scanf("%f?%f\n",&x,&y);//輸入小數????printf("%d?%d?%f?%0.2f\n",a,b,c,d);//輸出 printf("%c %d",ch,flag);}int a,b,c=0;double x,y,z=1.2;
就是聲明的格式,在聲明c的時候我們順便將一個0“=”給了c,為什么要用“=”,它們兩個相等嗎?其實不是的,在C語言里“=”的意義是賦值,是把0賦值給c這個變量。在聲明的同時賦值,我們將它叫做初始化,很專業吧。來看看其他賦值的方式吧。
int a;//聲明再賦值a=2;double?_i;?_i=1.2;注:這里用了_i的命名,C變量的命名可以用字母數字,下劃線,但只能是字母和下劃線開頭,并且要注意的是不能為C語言關鍵字。
char和bool也是可以先聲明在賦值或者直接初始化的~
unsigned和const
usigned翻譯成中文是沒有符號的,沒有負數,所以聲明的變量叫做無符號變量。什么作用?看代碼注釋吧~const的作用是把這個變量聲明為常量。不能被賦值。
unsigned?int?a;//聲明無符號整數型變量,不能放負數????????????? //但放的數字的范圍可以變成原來的兩倍。const int a=1; //聲明一個值為1的常量,不可以被賦值 //但可以賦值給別的變量占位符和地址符
在上面的代碼中,出現了%d %f %c還有"&"這個符號。
①先從簡單的講起,"&"是地址符,作用是提取出&后面的變量的地址。scanf輸入數據,在把數據按著地址放到變量里面。
②%d %f %c 是占位符,作用呢,很明顯,就是在printf和scanf的""里面占一個位置,讓數據輸入或者輸出。由于輸入輸出數據的不同,我們用d,f,c等來代替。d表示整數,f表示單精度,c表示字符。
對于%d的小特性(在printf中)
%02d——表示占用兩個寬度,不到的用0來填充。如1會表示為01。%5d——表示占用5個寬度,不到的用空格來填充。
對于%f的小特性(printf)
%0.2f——表示小數點后有兩位。如0.235會變成0.23或者0.24。是不是會四舍五入會根據編譯器不同而改變,這里就不舉例了。
輸出時候用%e——用科學記數法表示。如0.23會輸出為23e-2。
在d,f,c前面加個u表示無符號變量
8進制和16進制的打印
如果要打印八進制,可以用%o
如果要打印十六進制,可以用%x
如:printf("%o",8);會輸出10 printf("%x",15)會輸出F
注:對于scanf("%d %d",&a,&b);它是輸入函數,格式和printf差不多,就是多了地址符。仔細看看,兩個%d%d之間是有一個空格的,輸入的時候要注意中間留個空格給他們。如果是","也要輸入一個逗號,要注意中英文。
類型轉換
什么是類型轉換?就是把不同類型的值相互賦值。上代碼,簡單粗暴。
int a; //聲明double b=1.2;a=b; //用printf打印出來會變成了1因為在計算機中浮點數和整 //數儲存方式不一樣,把浮點的賦值給整數會截去小數部分//反過來int c=1;double d;d=c; //printf出來會是小數,只不過小數部分為0。//還有char ch='a';int ch1=ch;//printf出來ch1等于65,是a的ASCLL碼值。 //同時A是97//對于bool類型bool flag=true;int flag1=flag;//printf出來flag1會是1 //如果flag=flase,flag1會是0 //相反的把數字賦值給bool類型 //除了0之外的其他數都會轉化為1講到類型轉換,平時賦值的時候要核對是不是可以轉換。如果類型不同,可能會出現截斷,數據錯誤等問題。
unsigned的賦值也可能會出現問題,把很大的無符號變量賦值給有符號的可能會變成負數。這是因為變量的二進制表示不一樣。要了解相關的知識,這里引用一個大佬的推文——原碼、反碼、補碼(一) —— 原碼?會講到一些關于二進制中正負數儲存的方式。也可以關注他公眾號了解一些信息安全的知識~
結語:?關于C語言中變量的類型,以及相關的知識就講這么多了。
主要分為:數據類型、聲明、占位符和地址符、類型轉換,輸入輸出。
怎么樣學好這語言。關鍵是要多實踐,多敲,給自己個小目標,把這推文里的特性都敲一敲,看看運行后會有什么效果。
發現自己還沒出關于用編譯器的教程,目前公眾號的讀者定位是剛剛學C的學生,過幾天我會出一個圖片教程教用devC++(不難,有興趣可以自己琢磨下),這樣子暑假你們就可以慢慢練練了。
感jio不錯可以轉發或者點擊右下角好看哦~
? (。^▽^)也可以關注我
???
總結
以上是生活随笔為你收集整理的c语言 bool_程序的数据要放到哪里呢?|C语言第二篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python单元测试框架unittest
- 下一篇: arduino倾斜开关python语言_