Objective -C数据类型

关键字

关键字的定义:被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()函数可以清空缓存区的字符

时间: 2024-08-01 18:18:53

Objective -C数据类型的相关文章

objective - c 类和对象

知识点 1.初步认识 OC 2.xcode使用 3.面向对象编程思想,类和对象 4.类的定义和使用 5.类的实例化--对象 6.声明和实现相分离 =========================================== 1.需要理解的(理论部分) 第一部分:OC和面向对象 1.1.OC语言的历史,特点.重要程度 [什么是OC] objective - c   在C语言基础上开发, 面向对象的语言: 注意C语言和oc语言语法的区别: IOS, iphone, ipad … [进入OC

Objective C笔记(第一天)

• OC语言概述 1.早在20世纪80年代早期,Bard Cox发明了Objective C, 是扩充的C,面向对象的编程语言. 2.NEXTSTEP简称NS a.1985年,Steve Jobs成?立了NeXT公司. b.1988年,NeXT SoftWare公司获得了OC的语言授权, NEXTSTEP环境成为了苹果操作系统,创建的开发包.MACOS c.1996年,12月20?日,苹果公司宣布收购了NeXT software公司,NEXTSTEP环境为apple公司下主要开发.发?行操作系统

iOS开发核心语言Objective C —— 全部知识点总结

本分享是面向有意向从事iOS开发的伙伴及苹果产品的发烧友,亦或是已经从事了iOS的开发人员,想进一步提升者.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础.建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在開始Objective C语言的学习,假设您遇到问题也能够与我探讨.另外将无偿分享自己整理出来的大概400G iOS学习视频及学习资料,都是干货哦.能够新浪微博私信?关注极客James,期待与您的共同学习和探讨! ! 由于时间有限,每

objective-c/ios开发面试题(答案)

一.简答题 1.Objective-C的类可以多重继承么?可以采用多个协议么? 不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #import""有什么区别? #import能避免头文件被重复包含的问题: 1.  一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 使用include要注意重复引用的问题: class A,class B都引用了class C

efffective Objective-C 学习笔记

第一条:了解objective-c语言的起源 消息结构而非函数调用.区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定:而使用函数调用的语言,则由编译器决定. Objective-c为C语言添加了面向对象特性,是其超集.Objective-C使用动态绑定的消息结构,也就是说,在运行时才会检查对象类型.接受一条消息之后,究竟应执行何种代码,由运行期环境而非编译器来决定.掌握C的内存模型和指针. 第二条:在类的头文件尽量少引入其他头文件 除非确有必要,否则不要引入头文件.一般来说,

Objective—C语言的新魅力——Nullability、泛型集合与类型延拓

Objective-C语言的新魅力 一.引言 在Xcode7中,iOS9的SDK已经全面兼容了Objective-C的一些新特性和新功能.这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的iOS系统,那么这些特性有什么样的用处呢,作为开发者,我保证你一定会爱上他们,如果你可以将这些新特性都应用于你的开发,你的开发效率和代码质量,相比之前,会有一个很大的提升. 二.Nullability检测的支持 在swift语言中,通过!和?可以将对象声明成Op

Objective C Foundation基础框架[转]

<pre class="cpp" name="code">iOS Foundation基础框架就是以Foundation.h头文件的库 #import <Foundation/Foundation.h> Mac OS X和iOS都使用了Foundation基础框架.该框架中有很多日后开发常用的API,非常基础重要.以下就常用的类和结构做个介绍. NSObjct NSObject类,是ObjC类族中的根类.NSObject有一些高级特性支持,在

Objective C 快速入门学习三

1.数据类型 和C语言基本一样. 有一个特别数据类型id,可以储存任何类型的对象,它是实现多态和动态绑定的基础. Objective-C 2.程序结构 Objective-C和C的程序结构一模一样,具体用法相同. 顺序.循环.选择 3.基本上Objective-C兼容了C语言所有特点,包括数组.结构.字符串.联合,它们不是对象,面向过程式.建议直接使用相关框架下的相关类,面对对象编程. Objective C 快速入门学习三

转:Object-Runtime的基本数据类型

Class Objective-C是支持反射的,先来了解一下其如何表达一个类.在Objective-C的Runtime中有个类型是Class(只在Runtime环境中使用),用来表示Objective-C中的类,其定义为: typedef struct objc_class *Class; 可以看出,其实Class类型是一个指针,指向struct  objc_class,而struct  objc_class才是保存真正数据的地方,再看struct  objc_class的声明(from htt