1. 程式人生 > >linuxc第五

linuxc第五

1、變數
在這裡插入圖片描述
程式中如何操作記憶體,用一個符號 來代表某一段記憶體,那對這個符號的操作就是對這一塊記憶體的操作
上圖 abc 代表一個 4 位元組的記憶體,把10 存到 abc 中,就是把 10 存到那個4位元組記憶體中
這個符號 和 4位元組空間,我叫做變數,變數是一個整體的概念,符號和空間都是變數的一 部分,符號叫變數名,空間叫變數空間。
變數的4個部分:空間、變數名、變數地址、變數型別

人本身 記憶體空間
人名 變數名
身份證 變數的編號(地址):變數所在空間第一個位元組的編號(地址)
性別:女/男 變數的型別:決定了能存什麼樣的資料

在C語言中,變數名屬於 識別符號 的一種,識別符號的命名規則:
1、只能以字母、數字、下劃線組成
2、不能以數字開頭
3、不能使用C語言的關鍵字(共32個,例如:include )
變數的型別
存數字 10 需要幾個位元組? 1個位元組足夠
存數字 10000 需要幾個位元組? 2個位元組足夠
。。。。
存不同的數,需要的記憶體空間大小是不同的
C語言根據變數佔據的記憶體大小不同,和儲存資料型別不同,劃分不同的變數型別
有符號的:
整形資料 :char、short、int、long、long long
浮點型資料:float、double
無符號:在整型資料前面加unsigned C語言用 sizeof 來測變數型別的長度,sizeof 是C語言一個關鍵字

變數的使用

變數的定義 給變數分配空間和名字: 型別 變數名 int a float f char c
變數的初始化 定義變數的同時給變數賦一個初始值:型別 變數名 = 值 int a = 10 float f = 1.2
變數宣告 只給變數取名字,沒有給變數分配空間

初始化只發生變數第一次被建立的使用

字元
C語言使用: 使用單引號‘’括起來的單個符號,叫字元,比如:‘a’, ‘!’, ‘@’…
使用雙引號“”括起來的內容,叫字串,比如:“a”, “adas”, “lk#&@

[email protected]
記憶體中存的都是 二進位制 資料,那如何存其他型別資料,字元、視訊、聲音、圖 片、漢字。
編碼:把要存的內容轉換成數字存入到記憶體,用的時候,從記憶體中取的是數字, 然後將數字轉換成相應的內容使用
將字元 ‘a’ 存入到記憶體,比如用數字 97 表示字元 ‘a’
存:將 ‘a’ 轉換成 97 存入到記憶體
讀:讀出的內容是 97 , 將 97 轉換成 ‘a’ 使用
字元資料主要指數字、字母、通用符號、控制符號等等,在機器內都被 變換成計算機能夠識別的二進位制編碼形式。國際上被普遍採用的一種編碼是美國 國家資訊交換標準程式碼,簡稱為ASCII

  1. ASCII 是以 一個位元組進行編碼
  2. 第一部分由 00H 到 1FH 共 32 個,一般用來通訊或作為控制之用,有些字元可 顯示於螢幕,有些則無法顯示在螢幕上,但能看到其效果(例如換行字元、歸位 字元)。
  3. 第二部分是由 20H 到 7FH 共 96 個,這 96 個字元是用來表示阿拉伯數字、英 文字母大小寫和底線、括號等符號,都可以顯示在螢幕上。
  4. 第三部分由 80H 到 0FFH 共 128 個字元,一般稱為『擴充字元』,這 128 個 擴充字元是由 IBM 制定的,並非標準的 ASCII 碼。這些字元是用來表示框線、 音標和其它歐洲非英語系的字母。
    在這裡插入圖片描述

編碼
Utf-8是目前最常用的字符集編碼方式,常用的字符集編碼方式還有gbk和gb2312
Gb2312 簡體中文 包括6763個漢字
BIG5 繁體中文 港澳臺等用
GBK 包含全部中文字元 是GB2312的擴充套件,加入對繁體字的支援,相容GB2312
UTF-8 則包含全世界所有國家需要用到的字元
在這裡插入圖片描述
在這裡插入圖片描述
列印顏色
基本格式:
一種控制:printf("\033[xm");
多種控制:printf("\033[x;y;zm");等
價於printf("\033[xm\033[ym\033[zm ");
參考配色: #define NONE “\033[m”
#define RED “\033[0;32;31m”
#define LIGHT_RED “\033[1;31m”
#define GREEN “\033[0;32;32m”
#define LIGHT_GREEN “\033[1;32m”
#define BLUE “\033[0;32;34m”
#define LIGHT_BLUE “\033[1;34m”
#define DARY_GRAY “\033[1;30m”
#define CYAN “\033[0;36m”
#define LIGHT_CYAN “\033[1;36m”
#define PURPLE “\033[0;35m”
#define LIGHT_PURPLE “\033[1;35m”
#define BROWN “\033[0;33m”
#define YELLOW “\033[1;33m”
#define LIGHT_GRAY “\033[0;37m”
#define WHITE “\033[1;37m”

常量
常量:
1、字面量,可以在程式中直接引用的資料
2、常量的值是不允許改變的
整型常量
十進位制:
十進位制整型常量,由正、負號和0至9十個數字組成,沒有小數部分。
int型 32、345、12 、-65、-32768、32767
long int型 234L、234567453l、32L、32l、 -2147483648L unsigned int型 345u、238U、65535u
unsigned long int型 256ul、12345678UL、 4294967295uL
八進位制:
在數碼前加數字0,例如:012 == 10(十進位制)。
037u、0364L、0567453ul
16進位制:
在數碼前加0x(數字0和字母x,大小寫均可),例如:0x12 == 18(十進位制)。 0x1f 、0x1FL 、0xFul、0x10L
實型
整數形式:
它由整數和小數兩部分組成,這兩部分可以省略其中的一個部分,但不能同時都省略(小 數點不能省略)。
12.35 35. .689 (都是double型常量)
預設的型別是double型
指數形式: 在
小數表示法後面加字母E(或e)表示指數。
1e-2 0.5E10 35.56E-3 7.e-2 (都是double型常量)
注意:指數部分可正可負,但必須是整數。
注意:
1、用指數形式表示的浮點數必須有尾數,指數部分必須是整數。 如:e12 , .e43 , 0.25e4.5 , e 等是錯誤的。
2、在浮點數常量的後面用字母F(或f)表示float(單精度浮點)型別。
如:1e-2f表示float型。
3、而字母L(或l)表示long double(長精度浮點)型 ,
如:3.2L表示long double型。
4、如果在浮點數常量的後面不加字母,則表示是一個double(雙精度浮點)型常量。
2.1e-2
0.689 (都是double型常量)
字元型
1、字元常量是由一個字母或轉義字元兩邊用單引號括起來表 示,
例如: ‘a’、‘D’、’\n’ 等。
2、字元常量在計算機記憶體放的值,為該字元ASCII編碼值。
例如:‘0’其編碼值為48,而不對應數值0。
‘A’的ASCII碼值為65。
字元常量也可以用它的ASCII碼值來表示,具體表示方法為:
1、八進位制用’\ddd’表示,其中ddd代表三位八進位制數。
例如:’\101’代表字母’A’,’\60’代表字元’0’(零)。
2、十六進位制用’\xhh’表示,其中hh代表兩位十六進位制數。
例如:’\x41’代表字母’A’,’\x30’代表字元’0’(零)
轉移字元:
常用反斜線 “\”開頭後跟一個字元,但含義改變。見下表:
在這裡插入圖片描述
符號常量
在C語言中我們還可以用一個與常量相關的識別符號來代替常量出現在程式中,這種相關的標識 符稱為符號常量
定義形式:#define  識別符號  常量資料