C语言中数据类型的长度
面试中C里面int长度经常会被问到,下面总结一下作为资料:
首先看看一般规定:
标准c规定,int长度等于机器字长,short的表示范围不能大于int的表示范围,long的表示范围不能小于int的表示范围。在32为平台上(所谓32位平台是指通用寄存器的数据宽度是32)编写代码,short一般是16位,而long和int是32位。而在16位平台,int 和 short 一般都是16位,而long是32位。
下面写代码实际测试一下:
#include <stdio.h>
#include <stdlib.h> 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 =
len short =
len long =
len long long =
len float =
len double =
len *a =
len b[] =
len struct Node =
以前一直以为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
}
C语言中数据类型的长度的更多相关文章
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...
- 16.C语言中数据类型的本质含义是:表示一个内存格子的长度和解析方法。
数据类型决定长度的含义:我们一个内存地址(0x30000000),本来这个地址只代表1个字节的长度,但是实际上我们可以通过给他一个类型(int),让他有了长度(4),这样这个代表内存地址的数字(0x3 ...
- C语言中数据类型的本质
数据类型可以理解为固定内存大小的别名.比如int类型,就是表示占用4字节的内存. 1 数据类型的大小 用sizeof操作符获得数据类型的大小. 比如 int a[5]; sizeof(a)就可以得 ...
- C语言中数据类型和变量
C语言中的数据类型 数据类型的本质,固定大小内存块的别名. 数组名代表数组首元素的地址. 数组首元素的地址,&代表整个数组的地址. 数组数据类型,怎么定义数据数组类型,定义数组类型指针,数组类 ...
- mysql数据库中数据类型的长度
在mysql中新建数据表的时候会有长度一说,其实用建表语句建数据表的时候也有涉及 例如: CREATE TABLE user( uid int(4), name varchar(255), passw ...
- C语言中数据类型取值范围的计算的理解与总结
c语言中,数据类型有short,int,long,char,float,double,然后除了浮点型只有 有符号数(signed)外,其他的数据类型都分为有符号(signed)和无符号(unsigne ...
- 从头开始-03.C语言中数据类型
基本数据类型 整形: Int 4字节 %d / %i Short 2字节 %hd Long 8字节 %ld Longlong 8字节 %lld Unsigned 4字节 % 浮点型 单精度 Float ...
- C语言与java语言中数据类型的差别总结
在学习java的时候,看到char ch = '男' ; 我就觉得很奇怪,char类型不是占用一个字节吗?为什么定义成一个汉字被说成是一个字符了? 原来,在C语言中,char在32位操作系统下占用1 ...
- mysql中数据类型的长度
这是一篇很全面的博客的网址 http://qimo601.iteye.com/blog/1622368 下图是其中一部分截图,在mysql数据库中新建数据表时有个长度的设置
随机推荐
- C#操作Xml:linq to xml操作XML
LINQ to XML提供了更方便的读写xml方式.前几篇文章的评论中总有朋友提,你为啥不用linq to xml?现在到时候了,linq to xml出场了. .Net中的System.Xml.Li ...
- crawler_解析之_jquery_语法选择器使用方法
爬虫解析一般使用 正则或者给予样式的 jquery语法选择器 正则是根本,类比jsoup基于dom,底层也有部分是基于正则实现的,linux操作系统 文本处理也是借助强大的正则体现的 .关于正则 请参 ...
- java界面编程(8) ------ 组合框(下拉列表)
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 与一组单选button的功能类似,组合框(下拉列表)也是强制用户从一组可能的元素 ...
- JS中Array数组的三大属性用法
原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...
- 20款最好的免费的IDES和编辑器
程序员编程利器:20款最好的免费的IDES和编辑器 Posted on 2015-02-17 21:52 尛鱼 阅读(170) 评论(1) 编辑 收藏 程序员编程利器:20款最好的免费的IDEs和编辑 ...
- 如何将sqlserver表中的数据导出sql语句或生成insert into语句 [转]
输入表名,生成插入语句 drop proc proc_insert //如果存在就删除 go create proc proc_insert (@tablename varchar(256)) as ...
- Node.js连接MySQL数据库及构造JSON的正确姿势
做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...
- Dojo仪表板
Dojo它提供了一个良好的仪表板显示器,的影响,如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTU2hpWGlTaGVuZw==/font/ ...
- The operator == is undefined for the argument type(s) int, null
package cn.edu.shu.web.test; public class TestInteger { public static void main(String[] args) { /** ...
- GitHub上整理
GitHub上整理 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应 ...