美文网首页简友广场
C/C++,判断变量的类型

C/C++,判断变量的类型

作者: 程序员的一天 | 来源:发表于2020-09-29 17:13 被阅读0次

python用久了,c/c++也就慢慢还给老师了!

在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++]#

tip:i表示int,即类型首字母。

二、c语言判断变量类型

c语言中,没有判断变量类型的函数
可能因为c语言每种类型占用空间都很明确,大概不需要这样的功能吧。

如果确实需要判断,也有方法可行。方法比较鸡肋

可以简单利用sizeof()或者ASCII辅助判断

2.1、sizeof()判断

表达式 sizeof()可以得到对象或类型的存储字节大小,但是不同操作系统可能存在差异

我们来简单测试一下int类型和char类型的1分别占位多少。
第一步:创建test.c文件,并输入以下代码:

#include<stdio.h>
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文件):

[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:如果是个char类型的字母a,还可以进一步利用类型转换来判断。数字字符可以强制转换为int等,字母字符转换会报错。

2.2、ASCII码判断

利用ASCII码,也可以简单判断类型。

比如字符类型1输出ASCII码为49int类型1,则直接输出1

简单测试如下:
第一步:创建test.c文件,并输入以下代码:

#include<stdio.h>
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文件):

[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.

我的部分文章会首发在公众号上。微信读者,可以搜一搜:【程序员的一天】,感兴趣的朋友可以关注,支持一下,谢谢!

每一个关注点赞,都是极大的支持和鼓励。最后,非常感谢阅读。

相关文章

  • C/C++,判断变量的类型

    python用久了,c/c++也就慢慢还给老师了! 在python中,利用type()函数,可以很方便的判断变量类...

  • C++ 中的变量

    C++ 中的变量内存数据类型 C++ 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的...

  • C++变量的存储类别

    参考:C++(存储类)经典!! C++存储类(菜鸟教程) C++变量属性 一个变量除了数据类型以外,还有3种属性:...

  • C++ Builder 的字符串类型、字符类型、字符编码

    C++ Builder 参考手册 ➙ C++ Builder 的字符串类型、字符类型、字符编码 字符变量 字符常数...

  • C++ 变量和复合类型

    前面说了C++的基本数据类型,下面来看看在C++中如何定义变量和常量。 变量 定义和初始化 C++定义变量的方式和...

  • * 与 & 区别

    基本概念 C++ 是 C 语言的超集。C++ 有一种C 语言不存在的变量类型 --- 引用变量(简成引用)。 指针...

  • 日更挑战-语言基础汇总-变量定义

    声明和赋值:强类型,弱类型 1. 确定类型 java 变量类型 标识符=值 C/C++ 变量类型 标识符=值 oc...

  • 《C++ Primer》读书笔记

    前言 把《C++ Primer》读薄系列笔记全集。 目录 第I部分:C++基础 开始学习C++ 变量和基本类型 字...

  • C++变量类型

    C++中变量的定义与声明 变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据...

  • C++变量类型

    C++ 中的变量定义 变量定义 :告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型...

网友评论

    本文标题:C/C++,判断变量的类型

    本文链接:https://www.haomeiwen.com/subject/olueuktx.html