PS:以下内容是在Xcode的编辑器64位环境下的测试结果,网上有关于64位和32位各数据类型存在的差异,请自行online search。

main.m

 #import <Foundation/Foundation.h>
void basicDataTypeInC() {
NSMutableString *mStrInfo = [[NSMutableString alloc] init];
//(数值类型-》整型)整型;-2147483648至2147483647
int integerVal = ;
//(数值类型-》整型)短整型
short int shortIntegerVal = ;
//(数值类型-》整型)长整型
long int longIntegerVal = ; //(数值类型-》浮点型)单精度型,存在失精度的情况(如下:由于单精度型,有效位数是6-7位。而整数已占3位,故小数3位或4位后均为无效数字)
float floatVal = 888.8888888888;
//(数值类型-》浮点型)双精度型(如下:由于是双精度型,有效位数是15-16位。但VC6.0规定小数后最多保留6位,其余部分四舍五入)
double doubleVal = 888.8888888888; //字符类型
char charVal = 'a';
char charVal2 = ;
//字符串类型;实质是使用指针类型
char *charVal3 = "I am a string."; //布尔型;非0和false,即为1表示true
bool boolVal = true;
bool boolVal2 = -;
bool boolVal3 = ;
bool boolVal4 = ;
[mStrInfo appendFormat:@"\nintegerVal=%i\n", integerVal]; //integerVal=888
[mStrInfo appendFormat:@"shortIntegerVal=%hi\n", shortIntegerVal]; //shortIntegerVal=888
[mStrInfo appendFormat:@"longIntegerVal=%li\n", longIntegerVal]; //longIntegerVal=888
[mStrInfo appendFormat:@"floatVal=%f\n", floatVal]; //floatVal=888.888916
[mStrInfo appendFormat:@"doubleVal=%f\n", doubleVal]; //doubleVal=888.888889
[mStrInfo appendFormat:@"charVal=%c\n", charVal]; //charVal=a
[mStrInfo appendFormat:@"charVal2=%c\n", charVal2]; //charVal2=a
[mStrInfo appendFormat:@"charVal3=%s\n", charVal3]; //charVal3=I am a string.
[mStrInfo appendFormat:@"boolVal=%i\n", boolVal]; //boolVal=1
[mStrInfo appendFormat:@"boolVal2=%i\n", boolVal2]; //boolVal2=1
[mStrInfo appendFormat:@"boolVal3=%i\n", boolVal3]; //boolVal3=1
[mStrInfo appendFormat:@"boolVal4=%i\n\n\n", boolVal4]; //boolVal4=1 [mStrInfo appendFormat:@"sizeof(int) 为%lu个字节\n", sizeof(int)]; //sizeof(int) 为4个字节
[mStrInfo appendFormat:@"sizeof(short int) 为%lu个字节\n", sizeof(short int)]; //sizeof(short int) 为2个字节
[mStrInfo appendFormat:@"sizeof(long int) 为%lu个字节\n", sizeof(long int)]; //sizeof(long int) 为8个字节
[mStrInfo appendFormat:@"sizeof(float) 为%lu个字节\n", sizeof(float)]; //sizeof(float) 为4个字节
[mStrInfo appendFormat:@"sizeof(double) 为%lu个字节\n", sizeof(double)]; //sizeof(double) 为8个字节
[mStrInfo appendFormat:@"sizeof(char) 为%lu个字节\n", sizeof(char)]; //sizeof(char) 为1个字节
[mStrInfo appendFormat:@"sizeof(bool) 为%lu个字节", sizeof(bool)]; //sizeof(bool) 为1个字节
NSLog(@"%@", mStrInfo);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"C语言的基本数据类型长度");
basicDataTypeInC();
}
return ;
}

结果:

 -- ::06.687 CBasicDataType[:] C语言的基本数据类型长度
-- ::06.688 CBasicDataType[:]
integerVal=
shortIntegerVal=
longIntegerVal=
floatVal=888.888916
doubleVal=888.888889
charVal=a
charVal2=a
charVal3=I am a string.
boolVal=
boolVal2=
boolVal3=
boolVal4=
sizeof(int) 为4个字节
sizeof(short int) 为2个字节
sizeof(long int) 为8个字节
sizeof(float) 为4个字节
sizeof(double) 为8个字节
sizeof(char) 为1个字节
sizeof(bool) 为1个字节

C语言的基本数据类型长度的更多相关文章

  1. [置顶] C语言中各种数据类型的长度 sizeof char, short, int, long, long long

    这些数据类型的sizeof具体长度依赖于编译器和操作系统(32-bit or 64-bit) 1: 首先,参见c99标准 标准中没有定义这些数据类型的长度,而是定义了这些数据类型能表达的大小范围的最小 ...

  2. Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

    Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...

  3. Go语言基础之数据类型

    Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...

  4. [日常] Go语言圣经--复合数据类型,数组习题

    go语言圣经-复合数据类型 1.以不同的方式组合基本类型可以构造出来的复合数据类型 2.四种类型——数组.slice.map和结构体 3.数组是由同构的元素组成——每个数组元素都是完全相同的类型——结 ...

  5. C语言基础知识-数据类型

    C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...

  6. Go语言学习之数据类型

    ### Go语言学习之数据类型 数据类型的转换 1.Go语言不允许隐式类型转换(显示转换才可以) 2.别名和原有类型也不能进行隐式类型转换 例子: func TestImplicit(t *testi ...

  7. Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)

    初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...

  8. 换个角度带你学C语言的基本数据类型

    摘要: C语言的基本数据类型,大家从学生时代就开始学习了,但是又有多少人会试图从底层的角度去学习呢?这篇文章会用一问一答的形式,慢慢解析相关的内容和困惑. 本文分享自华为云社区<从深入理解底层的 ...

  9. Go 语言的基本数据类型

    Go 语言的基本数据类型 0)变量声明 var 变量名字 类型 = 表达式 例: 其中“类型”或“= 表达式”两个部分可以省略其中的一个. 1)根据初始化表达式来推导类型信息 2)默认值初始化为0. ...

随机推荐

  1. ILOG JRules 和 WebSphere Process Server 集成概述

    ILOG JRules 和 WebSphere Process Server 集成概述 简介 业务流程管理(Business Process Management,BPM)和业务规则管理系统(Busi ...

  2. wpf/wp/win8中的代码编写过程

    0.根据需求文档,完成前端界面显示 1.定义事件,初始化事件并定义方法. 2.定义加载数目和当先显示数目,定义方法所需要的变量. 3.编写方法所需要的接口以及接口实现. 4.在方法中引用接口. 5.实 ...

  3. js+jquery检测用户浏览器型号(转)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. <悟道一位IT高管20年的职场心经>笔记

    1. 你一定会在某个时候惊讶地发现,原来当初你曾经硬着头皮挨过来的日子对你是那么的珍贵.2. "'老板就是老板'.这一点,你可能会忘,他一定不会忘.'老板不会总是老板'.这一点,他可能会忘, ...

  5. linux 网络安全不完全笔记

    一.安装Centos二.Linux网络网络环境设置 a.配置linux与客户机相连通 b.配置linux上网三.Yum详解 yum 的基本操作 a.使用 yum 安装新软件 yum install – ...

  6. Android安装后没有完成和打开按钮

    File apkFile = new File(filePath); Intent intent = new Intent(); intent.setFlags(Intent.FLAG_ACTIVIT ...

  7. SwipeBackLayout侧滑返回显示桌面

    SwipeBackLayout是一个很好的类库,它可以让Android实现类似iOS系统的右滑返回效果,但是很多用户在使用官方提供的Demo会发现,可能出现黑屏或者返回只是看到桌面背景而没有看到上一个 ...

  8. hibernate整合进spring后的事务处理

    单独使用hibernate处理事务 本来只用hibernate开发,从而可以省了DAO层实现数据库访问和跨数据库,也可以对代码进行更好的封装,当我们web中单独使用hibernate时,我们需要单独的 ...

  9. 基于 bootstrap 的 vue 分页组件

    申手党点这里下载示例 基于 bootstrap 的 vue 分页组件,我想会有那么一部分同学,在使用Vue的时候不使用单文件组件,因为不架设 NodeJS 服务端.那么网上流传的 *.vue 的各种分 ...

  10. android studio 解析Excel数据格式导入poi-3.17.jar时的一系列报错及处理Failed resolution of: Ljavax/xml/stream/XMLEventFactory,duplicate entry: org/apache/xmlbeans/xml/stream/Location.class,GC overhead limit exceeded

    在org官网下载的poi jar包,导入到studio compile files('libs/poi-3.17.jar') compile files('libs/poi-ooxml-3.17.ja ...