tft每日頭條

 > 科技

 > c語言中基本數據類型的标識符

c語言中基本數據類型的标識符

科技 更新时间:2024-11-15 19:08:07

在上一篇文章《快速上手系列-C語言之基礎篇(一)》中寫了關于C語言的程序結構,關鍵字及控制語句。本篇主要寫寫C語言中數據類型,以及運算符相關方面的知識。

一、變量與常量

1、常量:在程序運行過程中,其值不能被改變的量(注意:不能反過來說),這些固定的值,又叫做字面量。常量可以是任何的基本數據類型,比如整數常量、浮點常量、字符常量,或字符串字面值,也有枚舉常量。

  • 整型 100,180,-100,0
  • 實型 3.14 , 0.125,-3.789
  • 字符型 ‘a’, ‘b’, ‘6’
  • 字符串 “a”, “abc”,“123”

常量的定義方式

  • 使用 #define 預處理器。 // #define MY_NUM 10
  • 使用 const 關鍵字。 // const char ch = 'a';

2、變量:其值可以改變,變量名隻能由字母、數字、下劃線組成,第一個字必須為字母或下劃線,變量在編譯時為其分配相應的内存地址。

二、C語言數據類型:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)1

1、整型數據

  • 整型常量的表示方法:十進制;八進制以數字0開頭,如0123;十六進制以0x開頭,如0x12

整型變量分為

  • 有符号/無符号基本整型 (unsigned/signed) int
  • 有符号/無符号短整型 (unsigned/signed) short(int)
  • 有符号/無符号長整型 (unsigned/signed) long (int)

2、實型數據

實型常量

  • 實型也稱為浮點型,實型常量也稱為實數或者浮點數
  • 十進制形式:由數字和小數點組成:0.0、0.12、5.0
  • 指數形式:123e3代表123*10的三次方

實型變量

  • 單精度(float)和雙精度(double)
  • float型: 占4字節,7位有效數字(十進制)
  • Double型: 占8字節,15~16位有效數字 (十進制)
  • 包含小數點卻不以f結尾的常量是double

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)2

3、字符數據

字符常量:用單引号括起來,如:‘a’、‘b’等。

轉義字符:以反斜杠“\”開頭,後跟一個或幾個字符。如‘\n’,‘\t’等,分别代表換行,橫向跳格。

字符變量:

  • 用char定義的變量隻能存放一個字符常量;
  • 每個字符變量被分配一個字節的内存空間;字符值以ASCII碼的形式存放在變量的内存單元中

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)3

例子說明:ch = 'a'; ch變量中存放的是字符 'a' 的ASCII :97, 即 ch=97 跟 ch='a' 在本質上是一緻的。

4、字符串

  • 是由雙引号括起來的字符序列,如“haha”、“hello world”,“123”等都是合法的字符串常量。
  • 注意:字符串常量和字符常量是不同的

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)4

三、數據類型的轉換

數據有不同的類型,不同類型數據之間進行混合運算時必然涉及到類型的轉換問題.轉換的方法有兩種:

1、自動轉換:遵循一定的規則,由編譯系統自動完成。

  • 轉換方向 :

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)5

  • 數據類型轉換的規律:占用内存字節數少(值域小)的類型,向占用内存字節數多(值域大)的類型轉換,以保證精度不降低。
  • 來看個例子:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)6

  • 從這個例子可以看出:a為char型,求其類型大小為1,而在sizeof(a a),進行a a計算的時候自動轉換為int行,所以sizeof(a a)為4,sizeof(a 1.2),其中1.2默認為double類型(之前說過,1.2f為float型,不加f默認為double型),a在與double型進行計算時自動轉換為double型,故sizeof(a 1.2)為8;

2、強制類型轉換:(類型說明符) (表達式), 其功能是把表達式的運算結果強制轉換成類型說明符所表示的類型,如:

  • (float)a; // 把a的值轉換為實型
  • (int)(x y); // 把x y的結果值轉換為整型

注意:

  • 類型說明符和表達式都必須加括号;
  • 無論是強制轉換或是自動轉換,都隻是為了本次運算的需要而對變量的數據長度進行的臨時性轉換,而不改變數據定義的類型

例子1-類型不改變:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)7

例子2-數值不改變 :

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)8

四、運算符與表達式

1、數據在運算中使用的運算符包括:運算符的種類、優先級和結合性

2、C語言常見的運算符:

  • 算術運算符 ( 、-、*、/、%、 、--)

這裡需要注意一下“ ”和“--”這兩種自增/自減運算符,雖然,它們放在變量前面/後面,作用都是使變量的值增1或減1,但是還是有區别的:

  • i,--i(先加/減,後使用)
  • i ,i-- (先使用,後加/減)

(1)自加/自減運算符在變量後面,表示先使用,後加/減,舉例說明一下:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)9

例子當中,先将a的初始值為10,将a的值賦給b,即b的值為10,然後a進行自加運算,自加後a的值變為11,這就是先使用,後加/減;

(2)自加/自減運算符在變量前面,表示先加/減,後使用,舉例說明一下:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)10

例子當中,先将a的初始值為10,a先進行自加運算,自加後a的值為11,然後将a的值賦給b,即b的值為11,這就是先加/減,後使用;

  • 關系運算符 (>、<、==、>=、<=、!= )
  • 邏輯運算符 (!、&&、||)
  • 位運算符 (<<、>>、&、|、 ~ 、∧ )
  • 賦值運算符 (=、及其擴展賦值運算符)
  • 條件運算符 (?:)

(1)條件運算符,是一種三元運算符,形式為: (a > b) ? a : b;

(2)說明:先判斷(a > b)是否為真,若為真,表達式取值a,否則取值b;

(3)條件運算符的運算優先級低于關系運算符和算術運算符,但高于賦值符;比如 max = ( a > b) ? a : b;可以去掉括号而寫為 max = a > b ? a : b;

(4)“?” 和“ :”是一對運算符,不能分開單獨使用。

舉個簡單例子來了解一下條件運算符的用法:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)11

例子當中,将 ( a < 1 ) ? 100 : 200 表達式的值賦給b,a的值為5,條件 a < 1為假, 因此表達式( a < 1 ) ? 100 : 200取值是200,即b為200;

後面一句 b = ( a == 5 ) ? 100 : 200;a初始值為5,條件 a == 5 為真,因此表達式 ( a == 5 ) ? 100 : 200 取值100,即b為100.

  • 逗号運算符 (,)
  • 指針運算符 (*和&)
  • 求字節數運算符(sizeof( ))
  • 強制類型轉換運算符((類型))
  • 分量運算符(.->)
  • 下标運算符([])
  • 其他( 如函數調用運算符())

用算術運算符将運算對象(也稱操作數)連接起來的、符合C語法規則的式子,稱為C算術表達式.運算對象包括常量、變量、函數等(函數指的是函數的返回值)

  • 例如: a*b/c-1.5+'a′

另外說一下複合的賦值運算符,就是在賦值符“=”之前加上其它二目運算符構成複合賦值符: =,-=,*=,%=,<<=,>>=,&=,^=

  • a = 10 //等價于 a = a 10;
  • a *= b 10 //等價于 a = a * (b 10);

五、運算符的優先級

運算符的優先級确定表達式中項的組合。這會影響到一個表達式如何計算。某些運算符比其他運算符有更高的優先級,例如,乘除運算符具有比加減運算符更高的優先級。

例如 x = 7 3 * 2,在這裡,x 被賦值為 13,而不是 20,因為運算符 * 具有比 更高的優先級,所以首先計算乘法 3*2,然後再加上 7。

在判斷同優先級運算符計算順序時,要注意結合性,詳細的優先級及結合性請參考以下表格:

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)12

c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)13

今天就寫到這裡,下面來一條華麗的分割線


c語言中基本數據類型的标識符(快速上手系列-C語言之基礎篇)14

接下來開始寫C語言中數組相關的内容,想了解的小夥伴們,可以添加關注。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved