為何要在這里提強制類型轉(zhuǎn)換呢,測試代碼可以看到編譯器會報很多警告,意思是告訴程序員數(shù)據(jù)類型不匹配,雖然并不影響程序的正確運行,但是很多警告總會讓人感到難受。因此為了告訴編譯器代碼這里沒有問題,程序員可以使用強制類型轉(zhuǎn)換來將一段內(nèi)存轉(zhuǎn)換為需要的數(shù)據(jù)類型,例如下面有一個數(shù)組a,現(xiàn)在將其強制轉(zhuǎn)換為一個結(jié)構(gòu)體類型stu:
#include
typedef struct STUDENT
{
int name;
int gender;
}stu;
int a[100]={10,20,30,40,50};
int main(int argc, char **argv)
{
stu *student;
student=(stu*)a;
printf("student->name=%d\n",student->name);
printf("student->gender=%d\n",student->gender);
return 0;
}

可以看到a[100]被強制轉(zhuǎn)換為stu結(jié)構(gòu)體類型,當(dāng)然不使用強制類型轉(zhuǎn)換也是可以的,只是編譯器會報警報。

上圖為程序的示意圖,圖中數(shù)組a[100]的前12個字節(jié)被強制轉(zhuǎn)換為了一個struct stu類型,上面僅對數(shù)組進行了說明,其它數(shù)據(jù)類型也是一樣的,本質(zhì)上都是一段內(nèi)存空間。
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
C語言
+關(guān)注
關(guān)注
183文章
7646瀏覽量
146116 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51895
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
C語言中void指針的基本認識及典型應(yīng)用
C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因為它們都是同一種
發(fā)表于 02-01 09:26
?1680次閱讀
C語言中的基本數(shù)據(jù)類型
C語言是非常重要的一門程序設(shè)計語言,學(xué)好C語言再去學(xué)習(xí)其他編程語言將變得很輕松,因為大部分
發(fā)表于 04-26 17:33
?2752次閱讀
labview 強制類型轉(zhuǎn)化
圖片里面的兩個強制類型轉(zhuǎn)化作用是啥,還有,接的類型,一個是4,一個是一個數(shù)組是啥意思,求解釋
發(fā)表于 05-17 09:32
C語言中定義int a,a是什么類型?
C語言中定義int a[10][10],a是什么類型? 我的理解是a是指向二維整型數(shù)組的指針 ,具體這個怎么用?一般都處理什么樣的數(shù)據(jù)呢??
發(fā)表于 05-25 07:10
C語言中int型強制類型轉(zhuǎn)換成short型的溢出問題怎么解決?
如何判斷STM32編碼器模式中電機的正反轉(zhuǎn)?C語言中int型強制類型轉(zhuǎn)換成short型的溢出問題怎么解決?
發(fā)表于 10-19 06:59
C語言中的不完整類型是什么
C語言中存在這樣一種類型,名叫不完整類型(Incomplete types),雖然我們可能不太理解,或許也沒有仔細研究過,但是在實際的編程中,我們卻已經(jīng)用到過很多次了。
簡述C語言中指針重點
在C語言中一個函數(shù)可以返回一個整型值、字符值、實型值等,也可以返回指針型的數(shù)據(jù),即地址,其概念與以前類似,只是返回的值的類型是指針類型。
scanf在C語言中的作用
scanf在C語言中的作用? scanf是C語言中的輸入函數(shù),用于從標(biāo)準(zhǔn)輸入設(shè)備(如鍵盤)讀取數(shù)據(jù),并將其存儲到變量中。它是C
c語言中數(shù)組怎么定義
C語言中,數(shù)組是一種用來存儲相同類型元素的數(shù)據(jù)結(jié)構(gòu)。它可以存儲多個元素,并通過一個共同的名稱來引用這些元素。數(shù)組是一種很重要的數(shù)據(jù)結(jié)構(gòu),可以用于解決很多實際的問題。 在C
c語言中decimal的含義
C語言中的“decimal”是一種數(shù)據(jù)類型,用于表示十進制數(shù)字。在C語言中,常用的數(shù)據(jù)類型有整數(shù)
C語言中強制類型轉(zhuǎn)化
評論