c++输出lpbyte类型_变量类型摸不清脉络?用typeid()试试,用一次就上瘾
在python中,利用type()函數,可以很方便的判斷變量類型。但是在c/c++中,判斷變量類型,卻不簡單…
出于某個奇葩需求,簡單研究了一下c/c++如何判斷變量類型,整理總結在此,分享給大家,也避免自己以后繞彎。
一、c++判斷變量類型
c++中,可以利用typeid()來判斷變量類型。
第一步:創建test.cpp文件,輸入以下代碼:
#include<typeinfo> #include<iostream> using namespace std;int main() {int i;cout << typeid(i).name() << "n";//輸出結果為i(表示int),即類型的名稱首字母 return 0; }第二步:利用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++]#二、c語言判斷變量類型
c語言中,沒有判斷變量類型的函數!
可能因為c語言每種類型占用空間都很明確,大概不需要這樣的功能吧。
如果確實需要判斷,也有方法可行。方法比較雞肋
可以簡單利用sizeof()或者ASCII碼輔助判斷。
2.1、sizeof()判斷
表達式 sizeof()可以得到對象或類型的存儲字節大小,但是不同操作系統可能存在差異。
我們來簡單測試一下int類型和char類型的1分別占位多少。
第一步:創建test.c文件,并輸入以下代碼:
第二步:利用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。
2.2、ASCII碼判斷
利用ASCII碼,也可以簡單判斷類型。
比如字符類型1輸出ASCII碼為49,int類型1,則直接輸出1。
簡單測試如下:
第一步:創建test.c文件,并輸入以下代碼:
第二步:利用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]#總結
以上是生活随笔為你收集整理的c++输出lpbyte类型_变量类型摸不清脉络?用typeid()试试,用一次就上瘾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点对点信道互连以太网实验_以太网防雷器通
- 下一篇: 网站运营手册_新媒体代运营模式价格