1樓:熟悉的陌生人
你這答案有點問題哦,前邊兩個元素是陣列,int和float都是四位元組,char是一個位元組,總共(4+3)*4+16=44位元組,如果我算錯了你告訴我,我也學學
c語言資料型別如何轉換?
2樓:匿名使用者
不是有強制型別
轉換嗎?
強制型別轉換 強制型別轉換
當運算元的型別不同,而且不屬於基本資料型別時,經常需要強制型別轉換,將運算元轉化為所需要的型別。強制型別轉換具有兩種形式,稱為顯式強制轉換和隱式強制型別轉換。
1、顯式強制型別轉換
顯式強制型別轉換需要使用強制型別轉換運算子,格式如下:
type()
或(type)
其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回一個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如:
int nvar=0xab65;
char cchar=char (nvar);
上述強制型別轉換的結果是將整型值0xab65的高階兩個位元組刪掉,將低端兩個位元組的內容作為char型數值賦值給變數cchar,而經過型別轉換後nvar的值並未改變。
2、隱式強制型別轉換
隱式型別轉換髮生在賦值表示式和有返回值的函式呼叫表示式中。在賦值表示式中,如果賦值符左右兩側的運算元型別不同,則將賦值符右邊運算元強制轉換為賦值符左側的型別數值後,賦值給賦值符左側的變數。在函式呼叫時,如果return後面表示式的型別與函式返回值型別不同,則在返回值時將return後面表示式的數值強制轉換為函式返回值型別後,再將值返回,如:
int nvar;
double dvar=3.88;
nvar=dvar;//執行本句後,nvar的值為3,而dvar的值仍是3.88
1,若已知x,y為double型別,則表示式:x=1,y=x+3/2結果是多少啊?
因為x,y都是double型,所以執行了y=x+3/2這個語句後,會輸出小樹部分,double型預設的是小數點後幾位我忘了,你自己除錯下,就會明白了!
3樓:考潤劉原
自動轉換和隱式轉換是一類的吧。比如int
a;charb=
2;a=b
*2;//這裡b的值就自動/隱式轉換為int型別關於強制轉換比floata=
(float
)1/2謝謝採納
c語言資料型別的轉換C語言資料型別的轉換
讓我來說說這個問題吧。一.自動轉換 自動轉換遵循以下規則 1 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。2 轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。a.若兩種型別的位元組數不同,轉換成位元組數高的型別 b....
c語言的資料型別分為幾種C語言的資料型別分為幾種?
short int long char float double這六個關鍵字代表c 語言裡的六種基本資料型別。在不同的系統上,這些型別佔據的位元組長度是不同的 在32位的系統上 short 佔據的記憶體大小是2 個byte int佔據的記憶體大小是4 個byte long佔據的記憶體大小是4 個by...
C語言的資料型別,c語言的資料型別包括哪些
基本的只有char,int,float,double四種,加上限定符long,short,signed,unsigned之後會有很多種。其實大部分資料型別還是可以對應上pascal裡的東西的。基本型別 int,short,long,float,double,char 構造型別 陣列,結構型別。c語言...