C 是一種靜態型別語言,因此它的所有變數都需要事先宣告資料型別。資料類型用於表示變數中包含哪種類型的值。在 C 中,包含數值的變數有 int、long、float 和 double。 int 和 long 用來表示整數值,而 float 和 double 用來表示小數值。 int 和 long 都包含整數值,但有一點不同,int 的大小為 4 個位元組,long 的大小為 8 個位元組。
int 到 long 的轉換可以透過多種不同的方式完成,我們只討論了其中兩種。第一個是透過隱式轉換,第二個是使用明確轉換。明確型別轉換需要在程式碼中提及結果資料型別,隱式型別轉換由編譯器本身完成。顯式類型轉換可以透過稍後描述的兩種方式進一步完成。我們之前描述過隱式轉換。
文法
int 類型變數到 long 的隱式轉換 -
int a; long b = a;
隱式轉換完全由編譯器處理,程式設計師無需為轉換付出任何額外的努力。只需將來源變數分配給目標變數即可。
演算法
- 在 int 變數中取得輸入,例如 a。
- 將 int 變數指派給 long 變數。如果 long 變數是 b,則將 a 賦值給 b 。
- 列印該值。
範例
#include <iostream> using namespace std; long solve(int var2) { return var2; } int main() { long var1; int var2 = 4103; var1 = solve(var2); cout<< "The value of var1 is: "<< var1 <<endl; cout<< "The size of var1 is: " << sizeof(var1) <<endl; cout<< "The size of var2 is: " << sizeof(var2) <<endl; return 0; }
輸出
The value of var1 is: 4103 The size of var1 is: 8 The size of var2 is: 4
如範例所示,變數 var1 的型別為 int,而變數 var2 的型別為 long。值 4103 用於初始化變數 var2,然後將其賦值給 var1。很明顯,編譯器執行了隱式類型轉換,並將值作為整數保存在變數 var1 中。變數大小也會顯示在輸出中以檢查轉換,儘管這僅用於演示目的並且不需要每次都應用。在 C 中,有兩種方法可以執行明確類型轉換:應用強制轉換運算子以及在賦值時明確聲明結果變數的資料類型。
使用強制轉換運算子
在 C 中,有四種不同類型的強制轉換運算子可用。靜態強制轉換運算子是本文中唯一使用的運算子。
文法
int a; long b = static_cast<long> (a);
演算法
- 在 int 變數中取得輸入,例如 a。
- 使用 static_cast 運算子將 int 變數指派給 long 變數(例如 b)。
- 列印該值。
範例
#include <iostream> using namespace std; long solve(int var2) { return static_cast<long> (var2); } int main() { long var1; int var2 = 257; var1 = solve(var2); cout<< "The value of var1 is: "<< var1 <<endl; cout<< "The size of var1 is: " << sizeof(var1) <<endl; cout<< "The size of var2 is: " << sizeof(var2) <<endl; return 0; }
輸出
The value of var1 is: 257 The size of var1 is: 8 The size of var2 is: 4
結果與之前嘗試的程式碼片段相當。顯式類型轉換可以完成相同的事情,只不過使用者現在需要指定轉換方法。
賦值時提及資料型別
與先前的方法類似,在轉換時,我們也將結果資料類型放在右側來源變數之前。在這種情況下不需要額外的操作員。
文法
int a; long b = (long) a;
演算法
- 在 int 變數中取得輸入,例如 a。
- 將 int 變數指派給 long 變數(例如 b),並註明結果資料型態。
- 列印該值。
範例
#include <iostream> using namespace std; long solve(int var2) { return (long) var2; } int main() { long var1; int var2 = 37857; var1 = solve(var2); cout<< "The value of var1 is: "<< var1 <<endl; cout<< "The size of var1 is: " << sizeof(var1) <<endl; cout<< "The size of var2 is: " << sizeof(var2) <<endl; return 0; }
輸出
The value of var1 is: 37857 The size of var1 is: 8 The size of var2 is: 4
結論
由於不同的資料類型提供了不同的表示和方法來操作相同類型的數據,因此它們之間的轉換在 C 和其他電腦語言中非常常見。為了在 long 和 int 之間進行轉換,我們主要使用兩種類型的轉換,稱為隱式轉換和明確轉換類型。當需要 int 類型資料進行更大規模、更複雜的計算時,這種轉換是有意義的。
以上是C++程式將int型別變數轉換為long型別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文解釋了C標準模板庫(STL),重點關注其核心組件:容器,迭代器,算法和函子。 它詳細介紹了這些如何交互以啟用通用編程,提高代碼效率和可讀性t

本文詳細介紹了c中有效的STL算法用法。 它強調了數據結構選擇(向量與列表),算法複雜性分析(例如,std :: sort vs. std vs. std :: partial_sort),迭代器用法和並行執行。 常見的陷阱

本文詳細介紹了C中的有效異常處理,涵蓋了嘗試,捕捉和投擲機制。 它強調了諸如RAII之類的最佳實踐,避免了不必要的捕獲塊,並為強大的代碼登錄例外。 該文章還解決了Perf

文章討論了在C中有效使用RVALUE參考,以進行移動語義,完美的轉發和資源管理,重點介紹最佳實踐和性能改進。(159個字符)

C 20範圍通過表現力,合成性和效率增強數據操作。它們簡化了複雜的轉換並集成到現有代碼庫中,以提高性能和可維護性。

本文討論了使用C中的移動語義來通過避免不必要的複制來提高性能。它涵蓋了使用std :: Move的實施移動構造函數和任務運算符,並確定了關鍵方案和陷阱以有效

本文討論了C中的動態調度,其性能成本和優化策略。它突出了動態調度會影響性能並將其與靜態調度進行比較的場景,強調性能和之間的權衡

C語言數據結構:樹和圖的數據表示與操作樹是一個層次結構的數據結構由節點組成,每個節點包含一個數據元素和指向其子節點的指針二叉樹是一種特殊類型的樹,其中每個節點最多有兩個子節點數據表示structTreeNode{intdata;structTreeNode*left;structTreeNode*right;};操作創建樹遍歷樹(先序、中序、後序)搜索樹插入節點刪除節點圖是一個集合的數據結構,其中的元素是頂點,它們通過邊連接在一起邊可以是帶權或無權的數據表示鄰


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),