c語言,如何檢測變數的資料型別,C語言,如何檢測變數的資料型別?

2021-03-11 01:02:20 字數 2282 閱讀 3498

1樓:

話說, 你理解抄

錯了。。。。

型別的定義其實是為了讓人能更好的理解。 對電腦來說, 任何變數只有位元組大小的差異。

我給你舉個例子, 你就很好理解了:

變數 a 在記憶體中用二進位制表示為:11111111111111111111111111111111 。 如果a 定義為int , 則表示為-1, 如果a定義為unsigned long, 則是4294967295,如果表示為浮點數,則是0.

0000.

以上這些,都是從人的角度看這塊記憶體,對計算機來說, 這個值就是二進位制的:11111111111111111111111111111111, 從來沒變過。 計算機也不需要檢測int 這個型別。。。

明白點了麼?

2樓:匿名使用者

c++有非常簡單的bai解決辦法。就du是用typeid的成zhi

員函式解決。舉個例dao子吧,非常簡內單。#include "iostream"using namespace std;int main{int a;cout<會發

容現,螢幕上列印 整形變數 這樣的話。手機打字不方便,要把分給我哦……

3樓:匿名使用者

使用 type(變數名)函式,具體請參考語言幫助。

4樓:千鋒教育

c語言bai沒有檢查變數型別的函du數,在zhic語言中定義

的變數,只dao是根據變數內型別來分配默

容認的儲存空間大小,而不記錄空間中儲存的具體的值的型別。比如定義的字元型別可以當整形來用,可以直接在上面加減一個數值。

資料型別在資料結構中的定義是一個值的集合以及定義在這個值集上的一組操作。

變數是用來儲存值的所在處,它們有名字和資料型別。變數的資料型別決定了如何將代表這些值的位儲存到計算機的記憶體中。在宣告變數時也可指定它的資料型別。

所有變數都具有資料型別,以決定能夠儲存哪種資料。

資料型別包括原始型別、多元組、記錄單元、代數資料型別、抽象資料型別、參考型別以及函式型別。

5樓:匿名使用者

你可以用sizeof求一下每一個變數型別的長度,根據長度來判斷它的型別

6樓:匿名使用者

剛學這個東西不要太細節,不然會讓自己越來越糊塗。

c語言中,怎麼判斷變數的型別?如何判斷一個變數是int還是long int?(不通過宣告)

7樓:yesyes科

1、首先在duc語言中,long long 是c99標準對整形類zhi型做的擴充套件,dao每個long long型別的變數佔8位元組版,64位。如下圖使用%lld輸出。權

2、這種輸出方法的結果如下圖所示,可以看到輸出結果是0,而很明顯輸出的結果不應該為零,也就是說輸出結果是錯誤的。

3、這時要看下是不是函式有問題,採取的方法如下圖所示。

4、修正之後的輸入結果下圖所示,通過這個過程,得出的結論是輸出long long型別的資料應該使用prinf的%lld格式,注意輸出函式不要寫錯。

5、最後輸出bool型別的資料,其使用printf的輸出格式如下圖所示。

6、最後輸出結果如下圖所示,就完成了。

8樓:匿名使用者

標準c裡是沒有方法獲得一個變數的型別的,在gcc擴充套件c中有typeof可以使用,在linux的很多地方都用到了typeof,和sizeof類似。

9樓:煭鯖

雖然用這個sizeof()函式復

可以通過位元組制數判斷!

bai但是你說int 和 long int這裡就會出du現問題!應zhi為int 和long int 都是4個位元組dao

!還有float!只能說sizeof()可以區分字元和數字。至於要去區別long int 和int 有點難!不必糾結這個吧...

10樓:輿影

可以用單目運算子sizeof(變數名)進行判斷,16位機下int是2位元組,32位機下是4位元組,long int是8位元組

11樓:匿名使用者

用typeid的成員函式解決

12樓:金色潛鳥

c++ 裡有。c 我沒

試過。版

調 typeid()。 頭文權件#include#include

#include

using namespace std;

main()

13樓:夕心木

同上,使用sizeof()函式判斷

c語言資料型別如何轉換C語言資料型別如何轉換?

不是有強制型別 轉換嗎?強制型別轉換 強制型別轉換 當運算元的型別不同,而且不屬於基本資料型別時,經常需要強制型別轉換,將運算元轉化為所需要的型別。強制型別轉換具有兩種形式,稱為顯式強制轉換和隱式強制型別轉換。1 顯式強制型別轉換 顯式強制型別轉換需要使用強制型別轉換運算子,格式如下 type 或 ...

關於c語言資料型別的問題,關於C語言資料型別的問題

因為有的資料比較長,比如1111111111111111,這樣用int就存不下了,要用長整型來儲存了 可能強制轉換時要用到吧 這只是我的觀點 long long hello 1 2147483647 cout hello endl cout int max endl hello右邊表示式 是1 in...

嵌入式c語言資料型別和標準c語言的資料型別是一樣的嗎,如果不一樣請舉例說明下謝謝

嵌入式c語言資料型別和標準c語言的資料型別是一樣的,都是ansic。但是使用方式有區別 嵌入式c語言資料 型別非常嚴格,對有符號無符號限定很嚴格,例如對資料很大時使用unsigned int等。這個的話要看你具體的環境了,一般都會有說明手冊的。不同的資料型別最終體現在每次分配的儲存空間不同。其實你如...