在C語言中,怎麼判斷變數是int型的還是char型的

時間 2021-07-02 04:12:32

1樓:

變數是int型的還是char型,是由宣告決定的。

函式呼叫時引數型別錯,你編譯時就通不過呀。

unsigned char 可以當無符號整型用。

2樓:

假設函式形式為:int function(int n);

方法1:判斷實參字長:

int function(int n)}

3樓:

在c語言裡有個函式可以判斷輸入的是不是數字或者字母int isalpha(int ch);

檢查ch是否是字母,是字母返回1.不是則返回0,去網上下個c語言函式看看吧

4樓:班楠

用sizeof操作符在執行時來判定變數字長是錯誤的。因為sizeof()的值在編譯時就確定了。上面老兄的函式永遠只能返回-1

其實在c語言中用不著去判斷變數型別。如果再呼叫函式時傳入了不匹配的型別,編譯器會給出警告。

5樓:

char和int在一定程度上可以通用

如‘a’==97

其他型別的會強制轉換。

6樓:夕霞孤雁

嚴格來說,是沒法判斷的。

7樓:匿名使用者

c語言中int型和char型可以相互轉化,

你可採用強制型別轉換解決問題.

c語言中 char與int有什麼區別?

8樓:鄙視04號

c語言中 char 與 int 具體區別如下:

1、表示的變數型別不同:

char 是字元變數,而 int 是整型變數。

2、申請的型別資料不同:

char 用來申請字元和字串或者字串指標;int 用來申請整型資料,或者整形資料指標。

3、位元組、能表示的內容不同:

char只有一個位元組,int有4個位元組,能表示的內容大小不一樣;char只有0~255,int範圍[-2^31 , 2^31 -1] (處理器是64位的可以更大)

9樓:長憶

char 是字元變數,用來申請字元和字串或者字串指標的

int是整型變數,用來申請整型資料,或者整形資料指標

10樓:匿名使用者

char是單字元,int是整形數,一個char型別變數只佔一個位元組記憶體,而一個int型別變數佔四個位元組

11樓:手機使用者

儲存需要的 位元組數不同,在32位機器上,一個int變數需要4個位元組(32位);一個char變數需要1個位元組(8位)

12樓:匿名使用者

char佔用一個記憶體(8bit),int佔用4個記憶體(32bit).還要看編譯器的環境,不同的編譯器給每個資料型別定義的長度可能有不同。

13樓:此使用者被關機

區別就是儲存資料的大小不一樣

int一般是4個位元組(有些系統是8個位元組和long一樣。。)

而char一般是1個位元組

14樓:匿名使用者

char佔用一個記憶體,int佔用4個記憶體,他們表示的值的範圍也不一樣

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

15樓: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、最後輸出結果如下圖所示,就完成了。

16樓:匿名使用者

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

17樓:煭鯖

雖然用這個sizeof()函式復

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

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

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

18樓:輿影

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

19樓:匿名使用者

用typeid的成員函式解決

20樓:金色潛鳥

c++ 裡有。c 我沒

試過。版

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

#include

using namespace std;

main()

21樓:夕心木

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

在c語言中怎樣判斷一個變數是字元還是數字

22樓:匿名使用者

首先,看定義,應該有定義變數的型別啊;

其二,可以輸出它的ascii碼,根據它的ascii碼直來判斷,32~126(共95個)是字元(32sp是空格),其中48~57為0到9十個阿拉伯數字;65~90為26個大寫英文字母,97~122號為26個小寫英文字母,具體查閱課本後的附表。

其三,可以用sizeof()函式測長度,字元都是一個位元組,數字嘛,不同型別位元組數不同,同一型別位元組數在不同編譯系統中也不同,這個你可以查得到的。

23樓:匿名使用者

使用c庫函式,isdigit,isalphaisdigit

語法:#include

int isdigit( int ch );

功能:如果引數是0到9之間的數字字元,函式返回非零值,否則返回零值.

char c;

scanf( "%c", &c );

if( isdigit(c) )

printf( "you entered the digit %c\n", c );

isalpha

語法:#include

int isalpha( int ch );

功能:如果引數是字母字元,函式返回非零值,否則返回零值。

char c;

scanf( "%c", &c );

if( isalpha(c) )

printf( "you entered a letter of the alphabet\n" );

24樓:匿名使用者

int isalpha(int ch),判斷字元ch是否為英文字母,當ch為英文字母a-z或a-z時,返回非零值,否則返回零。

int isdigit(char c); 判斷字元c是否為數字,當c為數字0-9時,返回非零值,否則返回零。

25樓:匿名使用者

根據他的ascii碼值判斷,比如'a'=97

32~126(共95個)是字元(32sp是空格),其中48~57為0到9十個阿拉伯數字;65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算子號等。

26樓:郭亦城①煲

樓主是什麼意思?定義變數時就要指定資料型別啊,不然編譯通不過。既然指定了資料型別,那不就不是知道是字元還是數字還是其他。

27樓:

根據他的ascii碼值判斷

28樓:匿名使用者

字元 不就 是數字嗎

int 和char 可以轉換

29樓:匿名使用者

char為字元,int,long,short為數字

30樓:殷念寒繆盈

轉義字元就那麼多

分為兩類

一個是固定字母的

比如\t

\n這個就只能背了

沒什麼辦法

另一類就是通用的,包括8進位制

16進位制

8進位制的

\ooo

後面的ooo是1到3個合法的8進位制字元。

16進位制

\xhh

後面的hh是1到2個合法的16進位制字元。

符合以上的

就是合法的。

否則非法。

c語言中int型別的變數,能不能與char型別的變數做乘法

31樓:德昂當

這要看你想得出bai什麼結果了

du。如果輸入

zhi 1306 a[10]="1306";

i=3 a[i]='6'; '6'是個字元它的daoascii值是 0x36 十進位制就是

回 54

item=54*pow(10,j-1);

如果你想要的是答 6*pow(10,j-1) 那就要用 a[i]-0x30再乘

32樓:匿名使用者

傳說中的型別轉換……

c語言中int型變數與char型變數什麼情況下不能互換

其實這種問題,從表面說也沒有什麼特別的意義,因為本來就沒有什麼嚴格意義上的能不能互換的問題。只要能在使用過程中,滿足本來的要求就可以了。例如 在將int型變數轉換為char型時,要考慮到資料的溢位問題等 char轉換為int時,要考慮到它的符號問題。在根本上只要認清它們兩者之間的區別就可以了。int...

在C語言中,如果下面的變數都是int型別,則輸出的結果是要解釋,不要只給答案。)

寂 滅丶天 驕 pa 7,因為是乙個逗號運算子,最後乙個表示式的值為逗號表示式的值,變數在前等於自加減前的值,變數在後等於自加減後的值,所以s 6,p s 5。p 6,p 7,滿意請採納,謝謝 sum pa 5 sum 5,pa 5pa sum 在後先賦值再自增,pa 5,sum 6pa 同理pa ...

c語言中int型變數加上double型的變數

程振 會將int型別轉換成double型別再與double型別的變數相加。型別不一樣的數相加,首先將型別轉換成一樣的然後相加,轉換原則,短型別向長型別看齊,長短指在記憶體中所佔空間的長短 得出的結果是double型.這個不需要強制轉換的,系統會自動轉換的. double,計算時會自動轉化之doubl...