在c语言中用什么函数判定一个变量的类型

如题所述

c语言中用没有函数判定一个变量的类型,可以使用sizeof来判断变量大小。

示例:

#include <stdio.h>

#include <stdlib.h>

int main(int argc,char **argv)         //主程序

{

//对C语言内置类型的所占字节数的测试

printf("size of char is: %d\n",sizeof(char));       //字符型数据所占字节数 、

printf("size of short is: %d\n",sizeof(short));     //短整形数据所占字节数

printf("size of int is: %d\n",sizeof(int ));        //整形数据

printf("size of short int is: %d\n",sizeof(short int)); //短整形

printf("size of long int is: %d\n",sizeof(long int));    //长整形数据

printf("size of float is: %d\n",sizeof(float));          //浮点型数据

printf("size of double is: %d\n",sizeof(double));        //双精度数据

//对字符及字符串数组所占字节数的测量

char a[] ={'a','b','c','d','e'};

printf("size of a[] is: %d\n",sizeof(a));               //输出数组a[]所占字节数

char b[]={"abcde"};                                     //初始化字符串b

printf("size of b[] is: %d\n",sizeof(b));               //数组b[]

char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};  //初始化二维字符型数组

printf("size of c[][] is: %d\n",sizeof(c));                             //二维数组c所占字节数

printf("size of c[0] is: %d\n",sizeof(c[0]));                           //二维数组中的某行所占的字节数,例如第0行

printf("size of c[0][0] is: %d\n",sizeof(c[0][0]));                     //某行某个元素,例如第0行第0个元素

//对指针所占字节数的测量

char *p=0;

printf("size of *p is: %d\n",sizeof(p));                       //字符型指针

system("pause");

return 0;

 }

扩展资料

使用sizeof()计算数组长度

将sizeof用于 expr是并没有计算expr的值。特别是在sizeof *p中,指针p可以是一个无效地址,因为不需要对p做解引用操作。

对char类型或值为char类型的表达式做sizeof操作结果为1。对引用类型做sizeof操作,将返回存放此引用类型对象所需的内存空间大小。

对指针做sizeof操作,将返回存放指针所需的内存大小,注意,如果要获取该指针指向对象的大小,则必须对该指针进行解引用。对数组做sizeof操作等效于对其元素做sizeof操作的结果乘上数组元素的个数。

因为sizeof返回整个数组在内存中的存储长度,所以用sizeof数组的结果初一sizeof其元素类型的结果,即可求出数组元素的个数:int sz = sizeof(ia)/sizeof(*ia);

通常将8位的块作为一个字节,32位或4个字节作为一个 “字”。一般的short为半个机器字长,int为一个机器字长。



温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-27

c语言中没有判断变量类型的函数。

在C语言中,如果按存储占用空间来分,包括:

整型变量(代码为int),整型变量包括长整型变量(代码为long int)以及短整型变量(代码为short int),字符型变量(代码为char),浮点型变量(代码float)等。当然还有数组,结构体变量等。

但新手需要注意的是,每一种变量类型最终都对应的格式字符.如:%d。

C语言还有一个重要变量:指针变量。它存放的值是一个内存地址。

C语言中变量名是有大小写之分的,如SUN与sun就是两个不同的变量名。

扩展资料:

变量命名规则:

1、变量名必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成;最后一个字符可以是类型说明符;

2、变量名的长度不得超过255个字符;

3、变量名在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别、使用的作用范围——例如一个过程、一个窗体等等。有关引用变量作用范围的内容,将在以后介绍。

4、变量名不能是VB中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名,关键字是指VB6语言中的属性、事件、方法、过程、函数等系统内部的标识符。如已经定义的词(if、endif、while、loop等)、函数名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的。

参考资料:百度百科-变量

本回答被网友采纳
第2个回答  2010-11-28
if(sizeof(int)==sizeof(name))printf("变量name是 int 数据类型");
简单的数据类型可以,需要先检查一下你需要判断的数据类型的字节数各为多少?如果有重复的就比较麻烦啦。例如:float与long就都是4,就看你的需求啦。
第3个回答  2018-03-24
c语言没有检查变量类型的函数,在C语言中定义的变量,只是根据变量类型来分配默认的存储空间大小,而不记录空间中存储的具体的值的类型。比如定义的字符类型可以当整形来用,可以直接在上面加减一个数值。
第4个回答  2010-11-28
用sizeof()返回字节数,看看这个变量占用了多少字节,从而判断其类型。
相似回答