最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

P2數(shù)據(jù)類型(基本數(shù)據(jù)類型)

2023-08-22 16:33 作者:創(chuàng)世十鷹  | 我要投稿

布爾類型:boolean?

基本介紹:

1) C語言標準(C89)沒有定義布爾類型,所以C語言判斷真假時以0為假,非0為真 [案例]?

2) 但這種做法不直觀,所以我們可以借助C語言的宏定義 。?

3) C語言標準(C99)提供了_Bool 型,_Bool仍是整數(shù)類型,但與一般整型不同的是, _Bool變量只能賦值為01,非0的值都會被存儲為1C99還提供了一個頭文件 <stdbool.h> 定義了bool代表_Bool,true代表1,false代表0。只要導入 stdbool.h ,就 能方便的操作布爾類型了 , 比如 bool flag = false;[了解]?

? 條件控制語句; if?

? 循環(huán)控制語句; while ...

自動類型轉(zhuǎn)換

介紹:

當C程序在進行賦值或者運算時,精度小的類型自動轉(zhuǎn)換為精度大的數(shù)據(jù)類型, 這個就是自動類型轉(zhuǎn)換。

數(shù)據(jù)類型按精度(容量)大小排序為


案例演示:

演示一下基本數(shù)據(jù)類型轉(zhuǎn)換的基本情況。

自動類型轉(zhuǎn)換細節(jié)說明:

1) 有多種類型的數(shù)據(jù)混合運算時,系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成精度最大的那種數(shù)據(jù)類型, 然后再進行計算(如int型和short型運算時,先把short轉(zhuǎn)成int型后再進行運算)。?

2) 若兩種類型的字節(jié)數(shù)不同,轉(zhuǎn)換成字節(jié)數(shù)大的類型,若兩種類型的字節(jié)數(shù)相同,且一種有符 號,一種無符號,則轉(zhuǎn)換成無符號類型?

3) 在賦值運算中,賦值號兩邊量的數(shù)據(jù)類型不同時,賦值號右邊的類型將轉(zhuǎn)換為左邊的類型, 如果右邊變量的數(shù)據(jù)類型長度比左邊長時,將丟失一部分數(shù)據(jù),這樣會降低精度,丟失的部 分按四舍五入向前舍入。

強制類型轉(zhuǎn)換?

介紹:將精度高的數(shù)據(jù)類型轉(zhuǎn)換為精度小的數(shù)據(jù)類型。使用時要加上強制轉(zhuǎn)換符 ( ),但可能造成精度 降低或溢出,格外要注意。?

強制類型轉(zhuǎn)換一般格式如下: (類型名) 表達式 什么是表達式: 任何有值都可以稱為表達式,比如 1+ 2, int num = 2; ?這種強制類型轉(zhuǎn)換操作并不改變操作數(shù)本身

案例演示 void main() {

double d1 = 156.89;?

int num1 = (int)d1; ?

}


強制類型轉(zhuǎn)換細節(jié)說明:

1) 當進行數(shù)據(jù)的從 精度高——>精度低,就需要使用到強制轉(zhuǎn)換?

2) 強轉(zhuǎn)符號只針對于最近的操作數(shù)有效,往往會使用小括號提升優(yōu)先級

基本數(shù)據(jù)類型轉(zhuǎn)換-練習題 :

判斷是編譯是否會通過??

char c = 'a'; ?

int i = 5; ?

float d = .314F; ?

double result = c+i+d; // c+i+d 類型是 float -> double ok


我的源碼及注釋:


#include <stdio.h>

//使用宏定義定義布爾類型(自己定義的布爾類型)

#define BOOL int

#define TURE 1

#define FALSE 0


void main(){

int isPass = -1;


//定義一個布爾變量

BOOL isOK = TURE;//等價 int isOK = 1;


if(isPass){//0表示真,非0表示假

printf("通過考試\n");

}


if(isOK){

printf("OKOKOK");

}


getchar();

}


/*

1.C語言標準(C89)沒有定義布爾類型,所以C語言判斷真假時,以0為假,非0為真。

2.但是這種做法不直觀,所以我們可以借助C語言的宏定義。

3.C語言標準(C99)提供了_Bool型,_Bool仍然是整數(shù)類型,但與一般整數(shù)不同的是,_Bool變量只能賦值為0或1,

非0都會被存儲為1,C99還提供了一個頭文件<stdbool.h> 定義了bool代表_Bool,true代表1,false代表0,

只要導入stdbool.h頭文件,就可以方便操作布爾類型,比如 bool flag = true;【vs2010是c89,所以不行哦,c99才可以】


布爾類型常用在 條件控制語句中、循環(huán)控制語句中

*/

/*自動類型轉(zhuǎn)換

精度從低到高順序:short-->int-->unsigned int-->long-->unsigned long-->float-->double-->long double


自動轉(zhuǎn)換規(guī)則:char,short-->int-->unsigned int-->long-->double<--float

//說明:double在這里是最高精度,相同線上都可以轉(zhuǎn)換


細節(jié)說明:

1.多種類型的數(shù)據(jù)混合運算,系統(tǒng)首先自動將 所有數(shù)據(jù)轉(zhuǎn)換成精度最大的那種數(shù)據(jù)類型,然后再計算。

2.若兩種類型的字節(jié)數(shù)不同,轉(zhuǎn)換成字節(jié)數(shù)大的類型,字節(jié)數(shù)相同(且一種有符號,一種無符號),則轉(zhuǎn)換成無符號類型。

3.賦值運算中,右邊數(shù)據(jù)比左邊長,將會丟失一部分數(shù)據(jù),這樣會降低精度(比如double-->float)

*/


#include <stdio.h>

void main(){

char c1 = 'a';

int num1 = c1;

double d1 = num1;


short s1 = 10;

int num2 = 20;

int num3 = s1 + num2;


float f1 = 3.456f;

double d2 = 6.6699336969;

f1 = d2;//會出現(xiàn)精度損失(double-->float)

printf("f1=%.10f",f1);//f1=6.6699337959,精度損失了

getchar();

}

/*強制類型轉(zhuǎn)換

1.高精度轉(zhuǎn)換為低精度會有個 warning警告,提示有精度損失

2.精度高的數(shù)據(jù)類型 轉(zhuǎn)換成 精度低的數(shù)據(jù)類型,需要加上強制類型轉(zhuǎn)換符(然后就不會有warning警告了),

但可能造成精度降低或溢出,要格外注意。

3.強制類型轉(zhuǎn)換一般格式如下:? (類型名) 表達式

【這種強制類型轉(zhuǎn)換操作 并不會改變操作數(shù)本身。也就是說,轉(zhuǎn)換后只是 返回轉(zhuǎn)化后的結(jié)果 并賦值給某個變量,

原來的值和類型沒有任何變化】

*/


//warning是可以運行的,但是在項目中,是不行的,不能要warning


#include <stdio.h>

void main(){

char c1 = 'a';

int num1 = 333;

double d1 = 666;


//計算會把精度 提高到 數(shù)據(jù)類型精度最高的類型

//int取整,會把小數(shù)部分直接截斷(也就是直接丟掉)

int num2 = (int)3.6 * 10 + 8*0.5;//3*10+4.0=34.0(是double類型)-->int類型的34

int num3 = (int)(3.6 * 10 + 8*0.5);//int(3.6*10+4.0)-->int(40.0(double))-->int類型的40


//c1 = d1;//有警告 warning C4244: “=”: 從“double”轉(zhuǎn)換到“char”,可能丟失數(shù)據(jù)

//強制類型轉(zhuǎn)換

c1 = (char)d1;


printf("num2=%d\n",num2);//輸出 num2=34

printf("num3=%d\n",num3);//輸出 num3=40


printf("c1=%d\n",c1);//輸出 c1=-102

//強制類型類型轉(zhuǎn)換后,本身的值和類型都不會變,其他編程語言一般也是這種情況

printf("d1=%f\n",d1);//輸出 d1=666.000000


getchar();

}

P2數(shù)據(jù)類型(基本數(shù)據(jù)類型)的評論 (共 條)

分享到微博請遵守國家法律
赤水市| 平湖市| 吐鲁番市| 苏尼特右旗| 通化县| 尚义县| 股票| 纳雍县| 小金县| 克山县| 巴青县| 龙州县| 博爱县| 图木舒克市| 鄯善县| 普洱| 虞城县| 沧州市| 弥勒县| 常熟市| 信丰县| 海宁市| 安西县| 营山县| 光山县| 郸城县| 若尔盖县| 德州市| 弋阳县| 长宁区| 芷江| 兴山县| 京山县| 夏邑县| 武义县| 东阳市| 廊坊市| 镇沅| 盖州市| 长丰县| 湟源县|