博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言中数据类型的长度
阅读量:5961 次
发布时间:2019-06-19

本文共 1292 字,大约阅读时间需要 4 分钟。

面试中C里面int长度经常会被问到,下面总结一下作为资料:

 

首先看看一般规定:

标准c规定,int长度等于机器字长,short的表示范围不能大于int的表示范围,long的表示范围不能小于int的表示范围。在32为平台上(所谓32位平台是指通用寄存器的数据宽度是32)编写代码,short一般是16位,而long和int是32位。而在16位平台,int 和 short 一般都是16位,而long是32位。

 

下面写代码实际测试一下:

#include 
#include
int main(){ printf("len int = %d\n ", sizeof(int)); printf("len short = %d\n ", sizeof(short)); printf("len long = %d\n ", sizeof(long)); printf("len long long = %d\n ", sizeof(long long)); printf("len float = %d\n ", sizeof(float)); printf("len double = %d\n ", sizeof(double)); char *a= "test"; char b[] = "test"; printf("len *a = %d\n ", sizeof(a)); printf("len b[] = %d\n ", sizeof(b)); typedef struct Node{ int value; struct Node* next; }Node; Node node; printf("len struct Node = %d\n ", sizeof(node));}

输出如下:

len int = 4 len short = 2 len long = 4 len long long = 8 len float = 4 len double = 8 len *a = 4 len b[] = 5 len struct Node = 8

以前一直以为C里面int是16位的,看来现在的机器都是32位的了。

 

下面区别一下sizeof() 和strlen();

#include <stdlib.h>

#include <string.h>

int main(){

char str[] = "dseww";
char* str1 = "dsewaaa";
int len = strlen(str);
int len1 = strlen(str1);
printf("%d\n",sizeof(str));//6
printf("%d\n",sizeof(str1));//4
printf("%d\n",len);//5
printf("%d\n",len1);//7
}

 

 

 

转载于:https://www.cnblogs.com/McQueen1987/p/4012819.html

你可能感兴趣的文章
开源史上最成功的8个开源产品
查看>>
JNDI学习总结(1)——JNDI入门
查看>>
2015年终总结
查看>>
使用Emacs阅读邮件和新闻组:Gnus 中文FAQ
查看>>
支付宝 iOS SDK 的简单使用
查看>>
锐捷RG-12010交换机VSU虚拟化配置
查看>>
在JSP页面中调用另一个JSP页面中的变量
查看>>
CISCO路由与交换笔记
查看>>
构建基于postfix+dovecot+squirrelmail的邮件服务器
查看>>
CDN+DNS主从/视图+squid反向代理+nginx负载均衡+httpd/nginx/tomcat网站搭建+iscsi后端存储...
查看>>
CentOS (RedHat) 6.4 使用 OpenLDAP
查看>>
linux snmpd.conf
查看>>
Mac高效率开发工具
查看>>
ssh-keygen的使用方法
查看>>
mysql 日期和时间格式转换实现语句
查看>>
Python装饰器
查看>>
php7.2 编译安装
查看>>
ios mjextension 字典数组转模型数组并转化为jsonString
查看>>
对 Windows 窗体控件进行线程安全调用
查看>>
iOS tableView分割线从头开始
查看>>