python用久了,c/c++也就慢慢還給老師了!在python中,利用
type()
函式,可以很方便的判斷變數型別。但是在c/c++
中,判斷變數型別,卻不簡單…
c++中,可以利用typeid()
來判斷變數型別。
第一步:建立test.cpp
檔案,輸入以下**:
#include#includeusing namespace std;
int main()
第二步:利用g++
編譯test.cpp
,生成可執行檔案(預設為a.out
):
[root@程式設計師的一天 c++]# ls
test.cpp
[root@程式設計師的一天 c++]# g++ test.cpp
[root@程式設計師的一天 c++]# ls
a.out test.cpp
[root@程式設計師的一天 c++]#
第三步:執行a.out
:
[root@程式設計師的一天 c++]# ./a.out
i[root@程式設計師的一天 c++]#
tip:c語言中,沒有判斷變數型別的函式!i
表示int
,即型別首字母。
可能因為c語言每種型別占用空間都很明確,大概不需要這樣的功能吧。
如果確實需要判斷,也有方法可行。方法比較雞肋
可以簡單利用sizeof()
或者ascii
碼輔助判斷。
2.1、sizeof()
判斷
表示式sizeof()
可以得到物件或型別的儲存位元組大小,但是不同作業系統可能存在差異。
我們來簡單測試一下int
型別和char
型別的1
分別佔位多少。
第一步:建立test.c
檔案,並輸入以下**:
#includeint main()
第二步:利用gcc
編譯test.c
檔案(預設生成a.out
檔案):
[root@程式設計師的一天 c]# ls
test.c
[root@程式設計師的一天 c]# gcc test.c
[root@程式設計師的一天 c]# ls
a.out test.c
[root@程式設計師的一天 c]#
第三步:執行a.out
:
[root@程式設計師的一天 c]# ./a.out
int型別1佔位:4
char型別1佔位:1
[root@程式設計師的一天 c]#
可以看到int
型別變數佔4個位元組,char
型別變數佔1位元組,從而判斷出是int
還是char
。
tip:如果是個2.2、char
型別的字母a
,還可以進一步利用型別轉換來判斷。數字字元可以強制轉換為int
等,字母字元轉換會報錯。
ascii
碼判斷
利用ascii
碼,也可以簡單判斷型別。
比如字元型別1
輸出ascii
碼為49
,int
型別1
,則直接輸出1
。
簡單測試如下:
第一步:建立test.c
檔案,並輸入以下**:
#includeint main()
第二步:利用gcc
編譯test.c
檔案(預設生成a.out
檔案):
[root@程式設計師的一天 c]# ls
test.c
[root@程式設計師的一天 c]# gcc test.c
[root@程式設計師的一天 c]# ls
a.out test.c
[root@程式設計師的一天 c]#
第三步:執行a.out
:
[root@程式設計師的一天 c]# ./a.out
int型別輸出:1
char型別輸出ascii碼:49
[root@程式設計師的一天 c]#
tip:字元才有到此,ascii
碼,int
型別數字會直接輸出數字本身。
c/c++,判斷變數的型別
介紹完畢!
end.
每乙個關注、點讚,都是極大的支援和鼓勵。最後,非常感謝閱讀。
Python 判斷變數型別
資訊來自於如下 使用python判斷變數型別時候要使用 isinstance 函式而非 type 函式進行判斷 比如 a 111 isinstance a,int trueisinstance 和 type的區別在於 class a pass class b a pass isinstance a ...
如何判斷變數型別
在js中如何判斷變數的型別屬於基礎知識,很多時候我們會忽略。畢竟上手 的時候可以現查。無論如何演變,我想基本功還是很重要的,熟練掌握總是百利而無一害。1 首先第一種就是我們常用的typeof 它會將型別資訊當作字串返回。如下 console.log typeof undefined undefine...
php判斷變數型別
其中gettype 函式返回變數的型別,如 boolean integer double float型別會返回 double 而非 float string array object resource null 和 unknown type 等值,表明變數型別 標量變數是指那些包含了 integer...