C語言的數據、常量和變量


 

一、數據

圖片文字等都是數據,在計算機中以0和1存儲。

(一)分類

數據分為靜態數據和動態數據。

①. 靜態數據:一些永久性的的數據,一般存儲在硬盤中,只要硬盤沒壞數據都是存在的。一般以文件的形式存儲在硬盤上,電腦關機重啟后依然存在。

②. 動態數據:程序運行過程中,動態產生的的臨時數據,一般存儲在內存中,內存的存儲空間一般較小,計算機關閉后這些數據就會被清除。軟件或者電腦關閉則這些臨時數據會被清除。

③. 靜態數據和動態數據可以轉換。

④. 注意:為什么不把動態數據存放到硬盤?因為直接訪問內存的速度更快。軟件安裝在硬盤,運行在內存。程序員應該更加關心內存數據。

(二)數據大小

①. 所有的數據都是由0和1組成的。

②. 數據都有大小,靜態數據占硬盤空間,動態數據占內存空間。

③. 數據越大,包含的0和1就越多,

④. 存儲數據的單位是比特位和字節。一個1或者0就是一個比特位,即1bit。

⑤. 計算機中,以字節為單位存儲數據。1字節=8比特位(1Byte=8bit)。

⑥. 1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B。

(三)C語言中的數據類型

    1. 基本數據類型

1) 整型 (int   %d)

2) 字符型 (char  %c)

3) 浮點型 %d

①. 單精度浮點型(float)

②. 雙精度浮點型(double)

  1.   2.指針類型 void *

      3.空類型   void

  2.    4.構造類型

1) 數組  a[]

2) 結構體 struct

3) 枚舉   enum

4) 共用體 union

注意:C語言中沒有布爾類型,表示開始和暫停一般使用0和1表示。

二、常量

(一)定義

常量表示固定的數據。

(二)分類

①. 整型常量    如6,27,-299

②. 浮點型常量  如5.43,-2.3,5.67f

③. 字符常量    如‘6’,‘a’,‘F’(不能是中文如‘男’)

④. 字符串常量  如“6”,“男”,“nanabc”

三、變量

(一)定義

如果一個數據的值時不確定的,或者經常需要改變,則用變量來表示。

(二)定義變量

目的:變量使用前必須先進行定義。在內存中分配一塊存儲空間給變量,以便以后存儲數據。如果定義了多個變量則為多個變量分別分配不同的存儲空間。

格式:變量類型+變量名;

舉例:int a;char c;

注意:變量名屬於標識符,需要符合標識符的命名規范。

問題:為什么定義的變量有很多的類型?

答:不同類型的變量占用不同大小的存儲空間,因為內存極其有限,分配適當的存儲空間可以以最少的空間來存儲它們,以節省空間。

記住:只要是不確定的數據就應該定義變量來進行保存。在64位編譯器下,int類型占4個字節,共4X8=32bit,char類型占1個字節。

(三)變量的使用

初始化:有兩種形式。1.int a;a=10;2.int a=10;

修改:可以修改變量的值,多次賦值以覆蓋。

輸出:使用占位符輸出變量。各種類型的占位符如下:

Int   %d或者%i

Float /double %f(默認情況下輸出6位,可以使用.2f來控制)

Long  %ld

Long long  %lld

Char  %c

字符串 %s

Unsigned long  %zd

(四)變量使用注意

變量的作用域:從變量定義的哪一行開始,直到代碼塊結束。

Return;退出函數,清除內存中的數據。

建議:使用矩形方框和excel來分析內存。

代碼塊{}的作用:可以用來提高性能,即時回收不再使用的變量。

(五)練習

練習:使用兩種方法來交換兩個變量的值。

第一種:

#include<stdio.h>
//交換兩個變量的值

int main() { int a=10; int b=4; printf("a=%d,b=%d\n",a,b); //定義一個中間變量來完成兩個變量之間的交換

int temp; temp=a; a=b; b=temp; printf("a=%d,b=%d\n",a,b); return 0; }
第一種

第二種:

 1 #include<stdio.h>
 2 
 3 int main()  4 
 5 {  6 
 7 int a=10;  8 
 9 int b=4; 10 
11 printf("a=%d,b=%d\n",a,b); 12 
13 a=b-a; 14 
15 b=b-a; 16 
17 a=a+b; 18 
19 printf("a=%d,b=%d\n",a,b); 20 
21 return 0; 22 
23 }
第二種

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM