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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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为一个机器字长。



参考技术A

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是合法的。

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

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

c语言中,puts和printf函数有啥区别?

希望详细

puts和printf函数的区别如下:

1、不同的换行符

puts()函数会自动在字符串末尾添加一个换行符,这意味着它会自动换行,而printf()函数没有此功能。

2、输出内容不同

puts()函数只能输出字符串,不能对输出和转换指令进行标准化,而printf()函数可以。

扩展资料:

调用格式

1、printf

格式字符串包含三种类型的对象:(1)字符串常量;(2)格式控制字符串;(3)转义字符。字符串常量按原样输出并在显示中用作提示。输出项在输出表列中给出,格式控制字符串和每个输出项在数量和类型上应一一对应。

格式控制字符串是以%开头的字符串,后跟各种格式控制字符,以指示输出数据的类型、宽度、精度等。

2、puts

(1)puts()函数只能输出字符串,不能输出值或执行格式转换。

(2)字符串可以直接写入puts()函数。例如:如:puts("Hello,world!")。

(3)puts与printf相同,puts()函数的作用与printf语句相同。注意:puts将在输出字符串之后自动输出回车。

参考资料来源:百度百科-puts

参考资料来源:百度百科-printf

参考技术A

1、换行不同

puts()函数会在字符串末尾自动的添加换行符,也就是说它会自动的换行,而printf()函数就没有这项功能。

2、输出内容不同

puts()函数只能输出字符串,不能进行标准化的输出与转换说明,而printf()函数可以。

扩展资料

调用格式

1、printf

格式化字符串包含三种对象,分别为:(1)字符串常量;(2)格式控制字符串;(3)转义字符。
字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。

其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

2、puts

(1) puts()函数只能输出字符串, 不能输出数值或进行格式变换。

(2)可以将字符串直接写入puts()函数中。如:puts("Hello, world!")。

(3)puts 和 printf的用法一样,puts()函数的作用与语句“printf“的作用相同。注意:puts在输出字 符串后会自动输出一个回车符。

参考资料来源:百度百科-puts

参考资料来源:百度百科-printf

参考技术B

     puts()函数只用来输出字符串,没有格式控制,里面的参数可以直接是字符串或者是存放字符串的字符数组名。

      printf()函数的输出格式很多,可以根据不同格式加转义字符,达到格式化输出。

      puts()函数的作用与语句printf("%s\\n",s);的作用形同。

参考技术C puts是输出一行字符串的

printf可根据格式控制符输出任意数据本回答被提问者采纳
参考技术D 本来都可以的,但你是执行完puts(sza);后,指针已经移动到最后了,才执行的printf("%s",sza);当然什么也输不出来了

以上是关于在c语言中用啥函数判定一个变量的类型的主要内容,如果未能解决你的问题,请参考以下文章

C语言不允许使用不完整的类型报错是啥意思啊

c语言里啥变量存储在堆中啥变量存储在栈中啊!

c语言:想问下typedef *char[10] Strings;中的*char[10]表示的是啥类型?

C语言源程序是由啥构成的

c语言中,puts和printf函数有啥区别?

c语言中的继承用啥关键字