数据

  • 什么是数据

生活中时时刻刻都在跟数据打交道,比如体重数据、血压数据、股价数据等。在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。

  • 数据的分类

计算机中存储的数据可以分为两种:静态数据和动态数据。

  1. 静态数据

  1. 概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。

  2. 存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。

  3. 哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。

  1. 动态数据(临时数据)

  1. 概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有4G左右,因此要谨慎使用内存,不要占用太多的内存空间。

  2. 存储的时长:计算机关闭之后,这些临时数据就会被清除。

  3. 哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。

你可能会问:既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?有个主要原因是内存的访问速度比硬盘快N倍。

程序员最关心的是什么数据呢?

  1. 静态数据和动态数据的转换

静态 -> 动态

动态 -> 静态

  • 数据的大小

  1. 不管是静态还是动态数据,都是0和1组成的。0和1如何组成这么多的数据?

  2. 数据都有大小,静态数据就会占用硬盘的空间,动态数据就占用内存的空间

  3. 数据越大,包含的0和1就越多,比特位和字节

  4. 1 KB = 1024 B,1 MB = 1024 KB,1 GB = 1024 MB,1 TB = 1024 GB

      

  • C语言中的数据类型

由于app中的数据种类繁多,为了方便操作数据,C语言数据进行了分类

常量

  • 什么是常量

常量,表示一些固定的数据

  • 常量的分类

1> 整型常量(int)

包括了所有的整数,比如6、27、109、256、-10、0、-289等

2> 浮点型常量(float\double)

浮点型常量分为double和float两种数据类型

  1. double:双精度浮点型,其实就是小数。比如5.43、-2.3、0.0等(注意,0.0也算是个小数)

  2. float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。

3> 字符常量(char)

将一个数字(0~9)、英文字母(a~z、A~Z)或者 其他符号(+、-、!、?等)用单引号括起来,这样构成的就是字符常量。比如'6'、'a'、'F'、'+'、'$'等。

注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'

4> 字符串常量

将一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。比如"6"、"男"、"哇哈哈"、"abcd"、"my_car4",其实printf("Hello World");语句中的"Hello World"就是字符串常量。

那究竟6、'6'、"6"在用法上有什么区别呢?这个先不作讨论,以后会介绍。

变量

  • 什么是变量

当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。比如游戏积分。

  • 定义变量

  1. 目的

  1. 任何变量在使用之前,必须先进行定义。

  2. 定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。

  3. 如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。

  1. 格式

变量类型  变量名;

比如int num;

  1. 变量名属于标识符

  2. 变量类型

  3. 不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间

  4. 约束变量所存放的数据类型(方便运算)

  1. 实例

int main()

{

int i;

char c;

int a, b;

return 0;

}

  • 变量的使用

  1. 赋值

往变量里面存点东西,就是赋值。赋值语句后带个分号;

i = 10;

注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量i

  1. 第一次赋值,可以称为“初始化”

  2. 初始化的两种形式

  3. 先定义,后初始化:int a;  a = 10;

  4. 定义的同时进行初始化:int a = 10;

  1. 修改

  1. 可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值

    i = 10;

    i = 20;

    变量i最后的值是20

  2. 使用printf输出一个\多个变量的值

    int a = 10, c = 11;

    printf("a=%d, c=%d", a, c);

  3. double\float\char的输出,格式符的一些小技巧

    double height = 1.55;

    char blood = 'A';

    printf("height=%.2f, 血型是%c",  height,  blood);

  4. 简单的加减操作

    int a = 10 + 20;

  5. 没有初始化时不要拿来使用(下面的写法是不建议的)

    int score;

    printf("score=%d", score);

  6. 变量之间值的传递,可以将一个变量的值赋值给另一个变量

    int a = 10;

    int b = a;

  7. 连续赋值

    a = b = 10;

注意:变量使用时,同时进行初始化,避免不必要的错误。

  • 常见错误

  1. 变量名相同  int a = 10;  int a = 12;

  2. 变量的作用域不对

  3. 变量的创建和释放过程

  4. 代码块作用域 {  int a = 10; }

  1. 交换整型变量a、b的值。比如a=10、b=11;交换之后a的值是11,b的值是10。用两种方式实现:

  1. 使用第三方变量

    int temp;

    temp = a;

    a = b;

    b = temp;

  2. 不使用第三方变量

    a = b - a;

    b = b - a;

    a = b + a;

  • 变量的内存分析

  1. 字节和地址

为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。内存以“字节为单位”

  1. 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多

  • 变量的存储

  1. 所占用字节数跟类型有关,也跟编译器环境有关

  1. 变量实例

int b = 10;

int a = 20;

  1. 内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大

  2. 每个变量都有地址:第一个字节的地址就是变量的地址

  1. 查看内存地址:

int a;

printf("a的地址是:%p\n", &a);

  1. 注意

在变量未经初始化之前,不要尝试使用变量的值

int a;

printf("a的值是:%d\n", a);

上面的写法是不建议的

转载于:https://blog.51cto.com/11150655/1737598

IOS开发知识(二)相关推荐

  1. 小米手环iOS开发实战(二):开发Demo让你的手环振动起来

    小米手环iOS开发实战(二):开发Demo让你的手环振动起来 上一节讲了CoreBluetooth的使用,理论知识很枯燥,那么现在先利用上一节讲的内容,做一个简易手环应用,实现连接/断开手环,查看手环 ...

  2. IOS开发高手课第一篇 构建自己的IOS开发知识体系

    开篇词 | IOS开发锚定一个点,然后在这个点上深耕 你好,我是戴铭,欢迎你加入我的 iOS 开发专栏. 说起 iOS 开发,自然是绕不开 iPhone 和 App Store 这两个词.多少年过去了 ...

  3. 关于IOS开发知识的总结

    IOS开发特别备注: IOS 7 UI适配方法 http://blog.sina.com.cn/s/blog_6fd90b5b0101cy50.html http://forum.bee-framew ...

  4. IOS开发知识(七)

    进制 什么是进制 是一种计数的方式,数值的表示形式 汉字:十一   十进制:11  二进制:1011  八进制:13 多种进制:十进制.二进制.八进制.十六进制.也就是说,同一个整数,我们至少有4种表 ...

  5. 零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world

    关于开发框架,依据网上检索来的信息,感觉cocos2d-x的ios游戏开发框架非常不错,并且有非常强的可移植性,因此打算尝试一下. 截止写下此文章,最新的cocos2d-x的版本号为v3.0稳定版(几 ...

  6. iOS开发——扫二维码下载APP

    注意:苹果手机只有UDID被加入到开发者的设备中之后才可以扫描二维码安装否则不能安装,如果没有请将UDID加入到开发者设备中重新下载证书点击运行就可以了(电脑证书不用动). 查看苹果设备UDID并添加 ...

  7. IOS 开发笔记——二维码的生成和扫描

    开发当中我们经常遇到二维码的生成或者说是扫描,但是苹果官方给我们准备好了这些 API,那么接下来作者为大家详细讲述一下二维码 在二维码的生成中,我们要用到一个类CIFilter,这是系统的一个滤镜类, ...

  8. ios开发(二十一)UIColor,CGColor,CIColor三者的区别和联系

    http://www.cnblogs.com/smileEvday/archive/2012/06/05/UIColor_CIColor_CGColor.html 最近看了看CoreGraphics的 ...

  9. iOS开发—二维码扫描-郭宏志-专题视频课程

    iOS开发-二维码扫描-3869人已学习 课程介绍         本课程由扣丁学堂教学总监郭宏志老师讲授,主要讲解了iOS开发专题中的二维码扫描这一专题,内容包含了二维码扫描中的全部知识,让学员更多 ...

最新文章

  1. 一份很不错的敏捷产品需要文档模板
  2. 《Silverlight揭秘》暨《ASP.NET高级程序设计(第2版)》有奖读书笔记征集
  3. XMLDOM对象方法:对象属性
  4. statsmodels 笔记:seasonal_decompose 时间序列分解
  5. PHP图片文字水印效果
  6. 【九省联考2018】秘密袭击【树形dp】【生成函数】【线段树合并】【多项式插值】
  7. python学习6 web开发
  8. 前端小白该如何学习?前端开发工程师掌握哪些能力
  9. h5打开app_移动端产品比较分析:APP、小程序、H5
  10. 如何在虚拟机中安装wp8的sdk,无法启动模拟器问题
  11. map 详解(C++)
  12. 通过双击运行linux脚本
  13. 完全卸载Oracle方法(最简便最详细最快捷)
  14. 推荐好轮子【Echarts数据可视化】图表插件 兼容ie6、7、8
  15. Wannacry蠕虫勒索软件“永恒之蓝”3种修复方案
  16. Qt 5.15版本安装教程
  17. 神经网络的参数(Weight)
  18. Linq查找最大值max最小值min效率比较
  19. “减糖”迫在眉睫,“代糖”或成最佳考量?
  20. 英语口语198之每日十句口语

热门文章

  1. tinyhttpd源码详解
  2. JSP下Forward和Redirect的区别分析
  3. 基础命令之cd,mkdir,cp,ls
  4. JDK修改环境变量的作用
  5. PHP 6:PHP 基本数据类型
  6. [DIV+CSS应用]澄清display:inline;与float:left;的用途
  7. Spring Boot 专栏全栈开发实战
  8. MySQL高级 - 存储引擎 - 特性
  9. B+树(加强版多路平衡查找树)
  10. 服务器启动时的leader选举