码迷,mamicode.com
首页 > 其他好文 > 详细

Objective -C数据类型

时间:2015-10-17 23:27:32      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

关键字
关键字的定义:被C语言赋予了特殊含义的单词
>关键字的特性:全部都是小写
>关键字在开发工具中会显示特殊颜色
      *编译器严格区分大小写
     *note:关键字不能用做变量名\函数名等
标示符
标示符的定义:程序员在程序中为自己起得名字
标示符的命名规则
1>只能有26个英文字母的大小写或10个阿拉伯数字0-9\下划线构成
2>严格区分大小写
3>不能以数字开头
4>不可使用关键字作为标示符
注释的使用
1.单行注释
使用的范围:任何地方都可以写注释:函数外面\里面,每一条语句后面
作用的范围:从第个斜线到这一行的末尾
快捷键: command + /
2.多行注释
作用的范围:从第一个/*到最近的一个*/
3.注释的使用注意事项
1.单行注释可以嵌套单行注释 多行注释
2多行注释可以嵌套单行注释
3.多行注释不能嵌套多行注释
数据类型
C语言的数据分类视图
技术分享
 
常见的数据类型:int double float char 
*整型:用于准确的表式整数,根据表示范围的不同分为以下三种:
               短整型(short)      <  整型(int)     <     长整型(long)
*实行(浮点型):用于标示小数,根据范围的和精度分为以下两种:
     *单精度浮点小数(folat)     < 双精度浮点型(double)
     *note:float只能保证7位数字是有效的!!!!!
*字符型:用来描述单个字符,char
常量:表示一些固定的数据,也就是不能改变的数据
整型常量
    • 十进制整数。如356,-120,0。
    • 八进制整数。八进制形式的常量都以0开头,如0123,也就是十进制的83;-011,也就是十进 制的-9。
    • 十六进制整数。十六进制的常量都是以0x开头,如0x123,就是十进制的291。
    • 二进制整数。逢二进一 0b开头
技术分享
 
实行常量
注意 :单精度小数:以f为结尾  0.0也是实行常量
 
技术分享
字符常量
字符型常量都是用’’(单引号)括起来,其表现方式有两种:
1>一般方式  一个字符用‘’括起来,注意只能有一个字符
2>特殊形式 都是以\开头,他们在屏幕上不会被直接显示出来,而是根据其特定的功能来显示的,这些常量特殊字符有:
\n 换行,相当于敲一下回车。
\t 跳到下一个tab位置,相当于按一下键盘上的tab键。 \b 退格,相当于按一下backspace。
\r 回车。
\f 换页,光标移到到下页开头。
\\ 输出\字符,也就是在屏幕上显示一个\字符。
\‘ 输出‘字符,也就是在屏幕上显示一个‘字符。
\" 输出"字符,也就是在屏幕上显示一个"字符。
\ddd 1位到3位八进制数表示的字符。
例如:使用‘\376‘,则在屏幕上显示一个黑色的方块。 \xhh 1位到2位十六进制数表示的字符。注意x不能丢了
字符串常量
字符串常量与字符常量不同的地方是,字符串常量是用""把字符串括起来,,而且系统会在字符串常量的末尾自动加一个字符串结束标志(‘\0‘)。
自定义常量
  • 格式: const 数据类型 常量名称 = 值
    • 例如: const int NUM = 998
变量的基本概念
表示的数据是可以经常修改的。当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。
定义变量的格式  数据类型 变量名;
  • 定义变量(声明), 任何变量在使用之前,必须先进行定义。

  • 定义变量的目:在内存中分配一块存储空间给变量,方便以后存储数据。
  • 如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
    不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间
  • 变量名的注意事项
  • 变量明的命名的规范
  • 变量名属于标识符,所以必须严格遵守标识符的命名原则
  • 变量名要尽可能的望文知意、简洁
 
变量的初始化和使用
例: int a = 10;
注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量value
  • (2)规范:习惯将 = 的两侧 各加上一个 空格
变量的初始化
变量的第一次赋值
初始化的两种形式
>先定义,后初始化
int a ; 
a = 12;
>定义的同时初始化
int a = 10 , b = 12; 完全初始化
int  a , b = 10; 部分初始化
其他形式 批量初始化
int a, b, c;
a = b  = 10;
不初始化里面存的数据是什么?
1)随机数
2)上次程序分配的存储空间,存数一些 内容,“垃圾”
3)系统正在用的一些数据
 
 修改变量的值
  • 可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值
利用printf函数输出变量的值,对应得占位符
int—>%d或%i 
double —> %lf
char —>%c
float—>%f
变量的作用域
1.  全局变量 
从变量的定义的那一行开始一直到程序结尾
 
2.   局部变量
从变量的定义的那一行开始一直到代码块结束
 
  • 作用域补充说明(了解):
    • 主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。
    • 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
    • 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易懂,不提倡在不同的函数中使用相同的变量名。
变量的内存分析
内存以“字节为单位” 
一个变量所占用的存储空间,不仅跟变量类型有关,而且还跟编译器环境有关系。同一种类型的变量,在不同编译器环境下所占用的存储空间又是不一样的
  • 所占用字节数跟类型有关,也跟编译器环境有关
  • 内存由大到小寻址
  • 变量存储单元的第一个字节的地址就是该变量的地址
  • 任何变量在内存中都是以二进制的形式存储。一个负数的二进制形式,其实就是对它的正数的二进制形式进行取反后再+1。(取反的意思就是0变1、1变0)
类型
16位编译器32位编译器64位编译器
char 1 1 1
int 2 4 4
float 4 4 4
double 8 8 8
short 2 2 2
long 4 4 8
long long 8 8 8
void* 2 4 8
取值范围
如果赋值的时候超出了变量的取值范围,那么将损失精度,得到“垃圾数据”(“垃圾数据”就是指并非我们想要的数据
关键字所占字节数表示范围
int 4 -2(31) ~ 2(31)-1
signed short int 2 -2(15) ~ 2(15)-1
signed long int 4 -2(31) ~ 2(31)-1
unsigned int 4 0 ~ 2(32)-1
unsigned short int 2 0 ~ 2(16)-1
unsigned long int 4 0 ~ 2(32)-1
float 4 绝对值E-37 ~ E+38
double 8
绝对值E-307 ~ E+308
printf函数
printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。
  • printf函数的调用格式为:
  • printf("格式控制字符串",输出项列表);
  • 例如:printf("%d,%d",a, b);
  • 格式字符(格式字符用以指定输出项的数据类型和输出格式)

    • d格式:用来输出十进制整数。有以下几种用法:
    • %d %hd %ld
    • o格式:以无符号八进制形式输出整数
    • x格式:以无符号十六进制形式输出整数
    • u格式:以无符号十进制形式输出整数
    • c格式:输出一个字符
    • s格式:用来输出一个串。有几中用法
      scanf函数介绍
      scanf函数原型包含在标准输入输出头文件“stdio.h”中,用于接收键盘输入的内容。
      • 格式:scanf("格式控制字符串",输入项地址列表);
      • 例如: scanf("%d", &num);
scanf函数常见错误
1,scanf(“%d\n”); 不能加\n  
2,scarf(“%d”, a, b); 一定要加上& 因为scarf是跟根据地址值区方位对应空间的数据
scant内存运行原理
 
用户输入的数据—————>缓存区—————————>从缓存区取走用户输入的数据
注意事项:
*如果在输入时,输入了多个空格、回车、Tab都会被系统忽略的
*如果要获取的内容是多个整数,中间输入了多个空格、回车、Tab都会被系统忽略
*如果要获取的内容是多技术分享个实型,中间输入了多个空格、回车、Tab都会被系统忽略
总结:为防止混合输入空格造成的错误,可以通过添加普通的分隔符解决
 
关于使用"\n"的问题
 
技术分享
 
 
技术分享

1.scanf的运行原理

  • 系统会将用户输入的内容了放入输入缓冲区
  • scanf方式会从输入缓冲区中逐个取出内容赋值给格式符, 如果类型不一致不会修改原有数据
  • 如果输入缓冲区的内容不为空,scanf会一直从缓冲区中获取,而不要求再次输入
调用getchar()函数可以清空缓存区的字符
 
 

Objective -C数据类型

标签:

原文地址:http://www.cnblogs.com/mshong/p/4888416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!