關於C 和C語言中一些變數和輸入輸出細節

2021-09-09 07:18:23 字數 1744 閱讀 3141

對於c/c++來說,最主要的型別也就是整型、浮點型、字元型這三種,對於每乙個型別又有不同的條線下的使用型別。

整型又可以分為int(也陳偉long int)、short(short基本用不到)、long long。對於這三種變數型別,其長度也不同。

值得注意的是在刷題中對於條件的把握。例如甲級題目中有一道題,其目的是判斷64位的數字相加之和,此時就不能單純的使用int來進行儲存,而是要使用long long來進行儲存,並且要進行溢位判斷。

對於int來說,乙個整型占用32位,也就是4位元組。取值範圍是正負2的31次方-1(之所以是31次方,原因是因為一位符號位),也可以簡單記為大致範圍為10^9範圍內的數。

對於long long來說,乙個整數占用64為,取值在正負2的63次方範圍內,數的大小範圍為10^10或者10^18次方內。

浮點型有float和double。但是注意,最好只用double,因為相同條件下容易出現float精度過低的情況。float精度在6-7位,double精度則有15-16位。

字元型有字元常量和字元變數。字元變數就是自己定義的變數,常量這是指具有代表數值的字元,例如標準ascii碼。ascii碼範圍在0-127,其中0-9對應48-57,a-z對應65-90,a-z對應97-122。對於大小寫字母來說,規律是小寫的ascii碼要比大寫的大32位。

所謂的字串常量就是若干字元組成的串,和c++中的string類似。

對於布林型唯一要注意的是int轉bool的轉換問題。對於整型常量對bool型賦值是,只有零才會賦值為0,非零則會賦值為1,要注意這一點。

最近自己經過刷題,也得知cout和cin的不便,不能格式化輸入,並且輸出也是大費周折,所以用c的printf和scanf最為方便。

如下圖所示,為scanf函式輸入的格式符號。

其中注意字串的輸入。由於字串的名字已經指向了第乙個位址空間,所以無需再做取位址運算。

scanf最大的乙個優點就是可以進行格式化讀入。例如對於年月日的讀取,xx:xx:xx,如果採用cout會及其麻煩,甚至牽扯到字串切割,使用scanf就極其簡單:scanf("%d:%d:%d",&a,&b,&c)

其中,最值得注意的就是空格讀入的問題,空格讀入則是根據情況而定的:

scanf對於其他格式符都是以輸入空白符為結束判定標誌的,除非使用%c把空格按照字元讀入,否則其他都會跳過空格。

另外,對於字元陣列,%s讀入的時候以空格和換行讀入作為結束的標誌。

其中,有些型別的寫法和scanf的略有不同。對於printf來說,輸出中也可以摻雜類似於轉義符換行符之類的東西。

對於printf來說,有三種格式化輸出利器,可以很好的來幫助刷題中的資料格式生成:

(1)%md

可以將不足m位的int型變數按右對齊輸出,可以視為缺位補空格;

(2)%0md

在右對齊輸出的基礎上進行補0輸出;

(3)%.mf

保留浮點數的m位小數輸出,注意,不是四捨五入,四捨五入應該使用math庫中的round()函式;

這兩個函式都是用來輸入單個和輸出單個字元,多用於scanf不便使用的場景。

值得注意的是,getchar是可以識別換行符的,所以一定要注意輸入的換行符問題;

C語言中一些基本問題

其中的u為unsigned,l為long,f為float c語言中常量的默情況 整形預設為有符號int 浮點型預設為double 如果整形常量大小超出int,預設自然就為long int 如果需要無符號整形常量的話就可以在常量後面加u或是u,如0u或是0u,同理可以在常量後面加ul或ul表示無符號長...

C語言中一些知識點

1.學程式設計 找 讀 改 寫 少看書。但少看不是不看,看一本書要限制在一天內。任務是通讀書中主要的概念,明白大致是幹什麼用的,形成乙個大概的框架 然後一周內乾掉書中全部 不理解再瀏覽書中相關章節,注意是瀏覽。或者刷部落格。實在刷不懂,可以先刷後面,待日後重新刷 因為書中 有些部分可能出自後面的章節...

c語言中一些公用的方法

這段由於學業的原因,最近與c有所接觸,面向過程與物件導向還是有點區別。但是方法還是可以寫成公用的.下面幾個函式感覺用的比較經常點,就貼上來了.25 子串判斷 引數 sourcestr源串,desstr判斷串 int stringjudge char sourcestr,char desstr ret...