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型變數加上double型的變數
程振 會將int型別轉換成double型別再與double型別的變數相加。型別不一樣的數相加,首先將型別轉換成一樣的然後相加,轉換原則,短型別向長型別看齊,長短指在記憶體中所佔空間的長短 得出的結果是double型.這個不需要強制轉換的,系統會自動轉換的. double,計算時會自動轉化之doubl...
C語言中int的含義,c語言中int 代表什麼意思
int 定義一個整型變數。比如 int i 表示定義一個整數i 也可以賦予初始值。int i 1 int後接一個字元是定義一個整型變數,vc中佔四位元組。c語言中int 代表什麼意思 c c 程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執...