C/C++,判断变量的类型
Posted C和C加加
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++,判断变量的类型相关的知识,希望对你有一定的参考价值。
来源:blog.csdn.net/pythontide/article/details/108872053
出于某个奇葩需求,研究了一下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++]#
tip:i
表示int
,即类型首字母。
二、c语言判断变量类型
c语言中,没有判断变量类型的函数!
可能因为c语言每种类型占用空间都很明确,大概不需要这样的功能吧。
如果确实需要判断,也有方法可行。方法比较鸡肋
可以简单利用sizeof()
或者ASCII
码辅助判断。
2.1、sizeof()
判断
表达式 sizeof()
可以得到对象或类型的存储字节大小,但是不同操作系统可能存在差异。
我们来简单测试一下int
类型和char
类型的1
分别占位多少。
第一步:创建test.c
文件,并输入以下代码:
int main(){
int var;
char var_char;
var = 1;
var_char = '1';
printf("int类型1占位:%d\n",sizeof(var));
printf("char类型1占位:%d\n",sizeof(var_char));
return 0;
}
第二步:利用gcc
编译test.c
文件(默认生成a.out
文件):
[ ]
test.c
[ ]
[ ]
a.out test.c
[ ]
第三步:执行a.out
:
[ ]
int类型1占位:4
char类型1占位:1
[ ]
可以看到int
类型变量占4个字节,char
类型变量占1字节,从而判断出是int
还是char
。
tip:如果是个char
类型的字母a
,还可以进一步利用类型转换来判断。数字字符可以强制转换为int
等,字母字符转换会报错。
2.2、ASCII
码判断
利用ASCII
码,也可以简单判断类型。
比如字符类型1
输出ASCII
码为49
,int
类型1
,则直接输出1
。
简单测试如下:
第一步:创建test.c
文件,并输入以下代码:
int main(){
int var;
char var_char;
var = 1;
var_char = '1';
printf("int类型输出:%d\n",var);
printf("char类型输出ASCII码:%d\n",var_char);
return 0;
}
第二步:利用gcc
编译test.c
文件(默认生成a.out
文件):
[ ]
test.c
[ ]
[ ]
a.out test.c
[ ]
第三步:执行a.out
:
[ ]
int类型输出:1
char类型输出ASCII码:49
[ ]
tip:字符才有ASCII
码,int
类型数字会直接输出数字本身。
到此,C/C++,判断变量的类型
介绍完毕!
END.
简单分享快乐学习,如有错误请多包涵!
PS:如果没有你的关注,那我所做的将毫无意义,欢迎分享,随手点赞,在看。
以上是关于C/C++,判断变量的类型的主要内容,如果未能解决你的问题,请参考以下文章