c語言資料型別問題,C語言資料型別如何轉換

2021-03-03 21:14:13 字數 1229 閱讀 2602

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語言...