在c語言中,可以透過「(type_name) expression」語句來進行強制型別轉換,參數「type_name」表示新型別名稱,例如「(float)100」就是將int型別的數值100轉換為float類型。強制類型轉換是程式設計師明確提出的、需要透過特定格式的程式碼來指明的一種類型轉換;在程式設計時,有需要類型轉換的時候都用強制型別轉換運算符,是一種良好的程式設計習慣。
本教學操作環境:windows7系統、c99版本、Dell G3電腦。
資料型別轉換就是將資料(變數、數值、表達式的結果等)從一種型別轉換成另一種型別。
c語言有兩種資料型別方式:
自動型別轉換:就是編譯器默默地、隱式地、偷偷地進行的資料型別轉換,這種轉換不需要程式設計師幹預,會自動發生。
強制型別轉換
下面我們就詳細了解c語言的強制型別轉換。
強制類型轉換
自動類型轉換是編譯器根據程式碼的上下文環境自行判斷的結果,有時並不是那麼「智能”,不能滿足所有的需求。如果需要,程式設計師也可以自己在程式碼中明確地提出要進行型別轉換,稱為強制型別轉換。
自動型別轉換是編譯器默默地、隱式地進行的一種型別轉換,不需要在程式碼中體現;強制型別轉換是程式設計師明確提出的、需要透過特定格式的程式碼來指明的一種類型轉換。換句話說,自動類型轉換不需要程式設計師幹預,強制類型轉換必須有程式設計師幹預。
強制型別轉換的格式為:
(type_name) expression
type_name
為新型別名稱##expression
為表達式
(float) a; //将变量 a 转换为 float 类型 (int)(x+y); //把表达式 x+y 的结果转换为 int 整型 (float) 100; //将数值 100(默认为int类型)转换为 float 类型請看下面的實例,使用強制型別轉換運算子把一個整數變數除以另一個整數變量,得到一個浮點數:
#include <stdio.h> int main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean ); }
型別轉換只是臨時性的
無論是自動型別轉換還是強制型別轉換,都只是為了本次運算而進行的臨時性轉換,轉換的結果也會儲存到暫時的記憶體空間,不會改變資料本來的型別或值。請看下面的範例:#include <stdio.h> int main(){ double total = 400.8; //总价 int count = 5; //数目 double unit; //单价 int total_int = (int)total; unit = total / count; printf("total=%lf, total_int=%d, unit=%lf\n", total, total_int, unit); return 0; }
擴充知識:常用的算術轉換
#常用的算術轉換是隱式地把值強制轉換成相同的型別。編譯器首先執行整數提升,如果操作數類型不同,則它們會被轉換為下列層次中出現的最高層次的類型:#include <stdio.h> int main() { int i = 17; char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum ); }當上面的程式碼被編譯和執行時,它會產生下列結果:
Value of sum : 116.000000在這裡,c 首先被轉換為整數,但由於最後的值是float 型的,所以會應用常用的算術轉換,編譯器會把i 和c 轉換為浮點型,並把它們相加得到一個浮點數。 【相關推薦:
以上是c語言如何進行強制型別轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

VScode中怎么配置C语言环境?下面本篇文章给大家介绍一下VScode配置C语言环境的方法(超详细),希望对大家有所帮助!

在C语言中,node是用于定义链表结点的名称,通常在数据结构中用作结点的类型名,语法为“struct Node{...};”;结构和类在定义出名称以后,直接用该名称就可以定义对象,C语言中还存在“Node * a”和“Node* &a”。

在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt()”,使用语法“sqrt(数值x)”;例如“sqrt(4)”,就是对4进行平方根运算,结果为2。sqrt()是c语言内置的开根号运算函数,其运算结果是函数变量的算术平方根;该函数既不能运算负数值,也不能输出虚数结果。

c语言将数字转换成字符串的方法:1、ascii码操作,在原数字的基础上加“0x30”,语法“数字+0x30”,会存储数字对应的字符ascii码;2、使用itoa(),可以把整型数转换成字符串,语法“itoa(number1,string,数字);”;3、使用sprintf(),可以能够根据指定的需求,格式化内容,存储至指针指向的字符串。

C语言数组初始化的三种方式:1、在定义时直接赋值,语法“数据类型 arrayName[index] = {值};”;2、利用for循环初始化,语法“for (int i=0;i<3;i++) {arr[i] = i;}”;3、使用memset()函数初始化,语法“memset(arr, 0, sizeof(int) * 3)”。

c语言合法标识符的要求是:1、标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成;2、第一个字符必须是字母或下划线,不能是数字;3、标识符中的大小写字母是有区别的,代表不同含义;4、标识符不能是关键字。

c语言编译后生成“.OBJ”的二进制文件(目标文件)。在C语言中,源程序(.c文件)经过编译程序编译之后,会生成一个后缀为“.OBJ”的二进制文件(称为目标文件);最后还要由称为“连接程序”(Link)的软件,把此“.OBJ”文件与c语言提供的各种库函数连接在一起,生成一个后缀“.EXE”的可执行文件。

c语言计算n的阶乘的方法:1、通过for循环计算阶乘,代码如“for (i = 1; i <= n; i++){fact *= i;}”;2、通过while循环计算阶乘,代码如“while (i <= n){fact *= i;i++;}”;3、通过递归方式计算阶乘,代码如“ int Fact(int n){int res = n;if (n > 1)res...”。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器