iOS学习之C语言基础学习day-02

IDE:

IDE 是 Integrated Development Environment 的简称,叫做集成开发环境。

集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。

不同的开发平台具有不同的 IDE 工具,比如开发 Java 程序的 IDE 是 Eclipse,开发.Net 程序的 IDE 是 Visual Studio……………

Xcode:

在 OS X 上开发 C C++ Objective swift 程序的 IDE 工具是 Xcode。这是 Apple 公司推出的1款专门用于开发在 OS X, iOS 系统上的程序,它是闭源的,但是它是免费的。

Xcode 的功能:

一键编译,链接,运行。再也不用苦逼的去执行 cc 命令来手动的编译,链接,运行了。

在 Xcode 中写代码的时候,Xcode 会实时检查我们写的代码是否符合语法规范,如果不符合会以红色的叹号来标注,当我们单击叹号的时候还会显示错误的原因和建议的修改方式。

代码智能提示功能,我们只要敲出单词前几个字母 Xcode 会自动提示后面的内容(初学者建议关闭此功能)

关键字自动着色,在代码中代表不同功能的单词以不同的颜色显示。

代码自动缩进,使代码看起来有层次感。

代码调试功能,99.99%的 BUG 我们都可以通过调试找到。

使用 Xcode 来开发第一个 C 程序:

1.打开 Xcode 会出现1个欢迎界面

iOS学习之C语言基础学习day-02_第1张图片
Xcode 欢迎界面

需要注意的是,你可能看不到这个界面,那是因为你可能设置了启动 Xcode 的时候不出现这个界面。那么点击上次的菜单栏  Window 的 Welcome to Xcode ,就可以显示出来了。所以选中上图中的 show this window when Xcode launches .这样当我们每次启动 Xcode 的时候都会显示这个欢迎界面。

2.在这个欢迎界面中单击 Create a new Xcode project 来创建1个 Xcode 项目。这个时候会弹出来1个新的界面出来让我们选择要创建的项目的类型。在这个界面选中 OS X 的 Application ,然后在右键选中 Command Line Tool .单击 Next 进入下一步操作。

iOS学习之C语言基础学习day-02_第2张图片
弹出来的窗口

在弹出来的窗口中,设置项目的一些必要信息

iOS学习之C语言基础学习day-02_第3张图片
信息设置

当项目的必要信息设置完成以后,点击 Next 按钮进入下一步操作。这个时候会让你选择项目存储路径。

iOS学习之C语言基础学习day-02_第4张图片
存储的路径

选择你希望存储的路径后。点击 Create 按钮创建项目,你就可以看到 Xcode 的工作界面。

iOS学习之C语言基础学习day-02_第5张图片
Xcode 的工作界面

这里简单介绍 Xcode 的几个最重要的工作区域

源代码导航区:在这里可以浏览项目中的源文件,单击源文件可以再代码民编辑代码。

代码编辑区:编辑源代码有地方,在源代码导航区单击 main.c ,就可以在这里修改源代码。

控制台输出区域:当运行程序的时候,程序输出的信息会输出在该区域。

图中标注的几个区域可以单击右上角的图标或者隐藏。

右上角的图标

编写源代码:

当新创建1个项目,在源代码导航区默认会有这个项目的源代码结构。单击 main.c  可以在代码编辑区直接编辑该源文件的代码。1个完整的 C 代码我们写过了,现在在 Xcode 中写代码试试。

iOS学习之C语言基础学习day-02_第6张图片
源代码

在 Xcode 中编写源代码提示功能:只要敲出单词前几个字母 Xcode 会自动提示后面的内容(初学者建议关闭此功能)

关键字自动着色:在代码中代表不同功能的单词以不同的颜色显示。

代码自动缩进:使代码看起来有层次感。

错误提示:在 Xcode 中写代码的时候,Xcode 会实时检查我们写的代码是否符合语法规范,如果不符合会以红色的叹号来标注,当我们单击叹号的时候还会显示错误的原因和建议的修改方式。

当我们编写代码以后,接下来就是编译,链接,运行了。这一系列的操作我们不必再手动的去完成,我们只需要按下 Xcode 左上角的运行按钮或者按下键盘上的 Command + r 快捷键 Xcode 就会自动的我们的代码编译,链接,运行。程序如果有内容输出就会在下方的控制台输出区域。

iOS学习之C语言基础学习day-02_第7张图片
Xcode 左上角

程序输入的内容会输出区域。

iOS学习之C语言基础学习day-02_第8张图片
源代码导航区的两个文件

这里介绍1下,在源代码导航区的两个文件夹的作用:

Day_02:这个文件是我们项目的源文件所在的文件夹,就是我们在项目时间指定项目保存的位置。

products:我们按下运行按钮或者按下 Command + r ,知道 Xcode 会将我们的代码编译,链接成1个执行文件,然后运行这个执行文件,这个执行文件就存储在文件夹下。

Xcode的快捷键:

Command + r:编译,链接,运行

Command + b:编译,链接

Command + /:单行注释

Command + Shift + n:新建项目

Command + C:复制

Command + v:粘贴

Command + x:剪切

Command + z:撤销

Shift + ↑:从光标开始,往上面的光标选中,以行为单位。

Shift + ↓:从光标开始,往下面的光标选中,以行为单位。

Shift + ←:从光标开始,往左面的光标选中,以行为单位。

Shift + →:从光标开始,往右面的光标选中,以行为单位。

Shift + Command + ←:从光标处到行首。

Shift + Command + ←:从光标处到行尾。

在1个 Project 添加多个 Target:

当1个 Project 中有不同功能的代码时,我们应该分类管理代码,而不是写在一个文件下。那我们可以在1个 Project 中写多个 Target ,而不是把一个 Project 的不同功能的代码实现到另一个新的 Project ,这样一来麻烦,二就是不好管理代码。

在源代码的导航区单击 Xcode 项目文件。这个时候会显示项目的设置页面,单击如下图所示的左上角的按钮就会显示出 Project 与 Target

的管理页面,点击下面的+号,就可以新增 Target 的。

iOS学习之C语言基础学习day-02_第9张图片
新增 Target

这个时候,就会弹出新增的对话框,与前面一样。

iOS学习之C语言基础学习day-02_第10张图片
新增的对话框

设置好一切必要的信息后就可以创建1个新的 Target 到当前这个项目之中了。

iOS学习之C语言基础学习day-02_第11张图片
设置信息

这个时候查看源代码导航区,会多1个 Target的。

iOS学习之C语言基础学习day-02_第12张图片
多1个 Target

C 语言的注释:

注释是对一段代码的解释,在程度的代码比较多的时候,而且结构比较复杂的时候,可以给自己或者其他人阅读提示。

注释是不会参与编译的,所以如果有一句话或者多句代码不想要了,就可以注释掉。

注释的分类:

单行注释:

// + 被注释的代码 或者 快捷键 Command + /

iOS学习之C语言基础学习day-02_第13张图片
单行注释

多行注释:

/*被注释的代码*/ 没有快捷键

iOS学习之C语言基础学习day-02_第14张图片
多行注释

注释的使用注意点:

1.多行注释不可以嵌套多行注释,可以嵌套单行注释

2.勤于写注释

3.注释的作用不止是解释说明,有时还进行调试

变量:

如果我们在内存中存储数据,首先在内存中开辟一块空间,在开辟这个空间的同时要指定这个空间的别名和类型,这个空间的类型决定了存储数据的类型。

常见的数据类型有int float double char

int:这个数据类型可以存储 -2147483648 ~ +2147483647 之间的整数。如果存储的数据不是这个范围就会有问题!

float:这个数据类型可以存储有效位不超过7位的小数。

有效位:去掉小数点的位数。(从左边开始第一个不为0的数相应的位数)

如果你存储的小数有效位超过了7位,那么超出的部分就无法精确保存,只能精确保存前面的7位!

double:这个数据类型可以存储有效位不超过16位的小数。

有效位:去掉小数点的位数。(从左边开始第一个不为0的数相应的位数)

如果你存储的小数有效位超过了16位,那么超出的部分就无法精确保存,只能精确保存前面的16位!

char:只能存储单个字符。

变量就是内存中开辟的用来存储数据的那块空间,变量是用来存储数据的

变量的值就是存储在变量所在的那块空间的数据

变量的名称就是变量所代表的那块空间的别名

变量的类型就是变量所代表的那块空间的类型

变量的本质是在内存中存储数据的那块空间

声明变量的格式:

数据类型     变量名称;

数据类型就是我们刚说的空间类型: int float double char

变量名称我们原则上可以随意。

int num;

当 CPU 执行这句代码的时候, CPU 会在内存中开辟1块空间     空间的类型是 int     空间的名称是 num ,用这个空间来存储数据,因为这个空间是 int 类型的,所以只能存储 -2147483648 ~ +2147483647 之间的整数,如果存储的数据不是这个范围就会有问题!

float num;

当 CPU 执行这句代码的时候, CPU 会在内存中开辟1块空间     空间的类型是 float     空间的名称是 num ,用这个空间来存储数据,因为这个空间是 float 类型的,所以只能存储有效位不超过7位的小数,如果存储的小数有效位超过了7位,那么超出的部分就无法精确保存不是这个范围,就会有问题!

double num;

当 CPU 执行这句代码的时候, CPU 会在内存中开辟1块空间     空间的类型是 double     空间的名称是 num ,用这个空间来存储数据,因为这个空间是 double 类型的,所以只能存储有效位不超过16位的小数,如果存储的小数有效位超过了16位,那么超出的部分就无法精确保存不是这个范围,就会有问题!

char ch;

当 CPU 执行这句代码的时候, CPU 会在内存中开辟1块空间     空间的类型是 char     空间的名称是 ch ,用这个空间来存储数据,因为这个空间是 char 类型的,所以只能存储单个字符,不能存储1个中文,因为1个中文字符要占3个字节,1个char类型的变量只能占1个字节!

所以我们在内存中存储数据就只需要声明1个变量,声明1个变量其实就是在内存中开辟一块空间来存数据

变量的赋值:

格式语法:

变量名 = 数据;

int num;

num = 100;

1)这个等号的你数学中符号完全不同的.

这个叫赋值符号.

赋值符号的作用:将右边的数据存储到左边的变量所代表的空间中.

1.int 型变量赋值注意点

1)超过范围太大-->报错

iOS学习之C语言基础学习day-02_第15张图片
超过范围太大

a:如果给的数据太大,直接语法报错

2)赋值小数-->不报错

iOS学习之C语言基础学习day-02_第16张图片
赋值小数

b:如果我们为 int 变量赋值1个小数,只会存储这个小数的整数部分.

赋值小数

3)如果超过的范围比较小

iOS学习之C语言基础学习day-02_第17张图片
超过的范围比较小

c:如果给的数据超过的范围并不多,这个时候存储的数据是一个随机值.

2.float型变量赋值的注意点

a:现在给一个 float 变量用赋值 double 小数赋值,会丢失精度

iOS学习之C语言基础学习day-02_第18张图片
float型变量赋值

b:正确写法

float f1;

f1 = 12.34f;

c:在 c 语言中如果我们直接写一个小数,那么这个小数的类型是 double 类型的,如果我们希望这个小数是 1 个 float 类型的,那么就在这个小数的后面加 1 个 f/F 代表前面的这个小数的类型是 1 个 float 类型的

d:float 只能精确保存不超过 7 位的小数.如果赋值的数据的有效位数据超过 7 位,那么超过的部分就不会精确保存.

超过 7 位的小数

3:为 double 型变量赋值的注意点

a:在 c 语言中如果我们直接写一个小数,那么这个小数的类型是 double 类型的,所以可以直接将一个小数赋值给 1 个 double 变量.

b:float 只能精确保存不超过 16 位的小数.如果赋值的数据的有效位数据超过 16 位,那么超过的部分就不会精确保存.

4:为 char 型变量赋值的注意点

char ah;

ah = 'a';

a:char 变量只能存储单个字符,并且这单个字符还要用单引号括起来

b:如果给的字符太多,只会保存最后1个.

给的字符太多

c:空格也是 1 个字符,所以也可以存储 1 个空格

d:char 不能存储1个中文,因为1个中文字符要占3个字节,1个char类型的变量只能占1个字节!

不能存储1个中文

使用printf函数先导入头文件 #include

使用 printf 函数输出变量的值:

1:如何使用变量的数据?

什么时候想要使用变量的数据,就直接写上变量的名字就可以使用了.

iOS学习之C语言基础学习day-02_第19张图片
使用变量

上面的代码 num3 就是 num1 和 num2 的和;

2:如何输出变量的值?

使用 printf 函数就可以输出变量的值.

3.printf 的两种使用方式

格式 1:

printf("输出信息");

双引号的内容原样输出.

格式 2:

printf("格式控制字符串",变量列表);

在格式控制字符串中如果有地方要显示变量的值,那么就使用 1 个占位符来占位.

输出的变量的类型不同是不一样的.

1).如果输出的类型是 int 类型的,那么就使用 %d 占位符.

int num;

num = 100;

printf("num变量的值是:%d\n",num);

%d 代表这个地方不要原样输出,而是输出 1 个整型变量的值.

%d

2).如果输出的类型是 float 类型的,那么就使用 %f 占位符,默认输出小数点后面6位.

iOS学习之C语言基础学习day-02_第20张图片
%f

3).如果输出的类型是 double 类型的,那么就使用 %lf 占位符,默认输出小数点后面6位.

iOS学习之C语言基础学习day-02_第21张图片
%lf

4).如果输出的类型是 char 类型的,那么就使用 %c 占位符.

%c

***务必记住,输出变量使用的占位符和变量的类型不匹配的话,那么输出的结果就是错误的.***

类型不匹配

格式控制字符串中可以写多个占位符:

iOS学习之C语言基础学习day-02_第22张图片
多个占位符

注意:

后面的变量一定要按照顺序来写,因为在填占位符的时候是按顺序来占位的,否则就会混乱.

iOS学习之C语言基础学习day-02_第23张图片
混乱

ps:上面结果可能和你不同,在后面学习了进制才能说清,这里不深入讨论

后面的变量的个数要和前面一致,如果没有变量填的就是随机值.

iOS学习之C语言基础学习day-02_第24张图片
随机值

总结:顺序不对,类型不匹配,输出结果就会有问题.

变量的问题:

1.为什么有了double为什么还要有float?

一个double类型变量占据8个字节,一个float类型变量占据4个字节,如果数据本身有效位数不超过7位,使用double来存储显得浪费,因为double变量代表的内存空间比float变量所占的内存空间要大.使用float节约内存空间.

2.定义变量的格式:

1)先定义,后赋值

int num;

num =10;

2)定义的同时进行赋值

int num2 =10;

注意事项:

在同一作用域内,不能重复定义变量(不能定义同名变量)

3.可以批量定义类型相同的变量:

//只定义不赋值

intnum1,num2,num3;

//定义同时赋值

int num1 =1,num2 =2,num3 =3;

return0;

注意,不要批量定义不同类型的变量.

4.定义一个变量,如果没有给它赋值,那么里面的数据是随机的数,为了保证程序不出问题,定义一个变量就要给这个变量赋予一个值.

5.变量中内容是可以改变的,注意,新的值直接覆盖掉原来的值,不是叠加

int num1 =10;

num1 =20;

num1 =30;

printf("%d\n",num1);//30

return0;

6.可以把一个变量A的值赋值给另外一个变量B,此时A的值没有改变

int num1 =10;

int num2 = num1;//"把A变量的值拷贝一份再赋值给B"

num2 =20;

printf("num1的值是%d,num2的值是%d\n",num1,num2);//10 20

7.变量使用之前一定要先定义

8.不要在同一对大括号内定义同名的变量

变量的命名规则以及规范:

命名规则:

1、只能由字母、数字、下划线或者美元符号($)组成//int¥num;不行

2、不能以数字开头//int 9num;//错误的

3、不能与关键字重名

4、严格区分大小写//int num;  int NUM;

命名规范:

驼峰命名法

学生数量

int studentCount;

int numOneSto;

int num_1;

int num_2;

关键字&标识符:

关键字就是具有特殊功能的系统保留字

标识符就是在程序中自定义的一些符合和名称有什么用?

给要用的函数,数据等起名字,方便区分调用.

由26个英文字母的大小写,10个阿拉伯数字0-9,下划线组成,$符号

有什么特点?

1.只能由字母、数字、下划线或者美元符号($)组成//int¥num;不行

2.不能以数字开头//int 9num;错误的

3.不能与关键字重名

4.严格区分大小写

5.起名要意义

6.便于识别(驼峰命名)

调整代码快捷键

Control + i//自动调整代码

Command + [  ]//调整代码左右移动

Command + option + [ ]//调整代码上下移动

Command +方向左右建//移动光标

Command + shift +左右方向键/上下方向键 //选中代码

printf高级用法:

1.%0md

1)如果变量的值小于4位,不足的地方用0补齐.

int num =100;

printf("num =%04d;\n", num);// 0100

2)如果变量的值大于4位,实际多少位就显示多少位.

int num =10111;

printf("num =%04d;\n", num);// 10111

3)m可以是负数,如果位数不够,不足的地方会在后面补齐.

int num =11;

printf("num =%-4d;\n", num);// 11

2.%.mf和%.mlf,指定小数点后面的位数,自动四舍五入,默认情况下,只会输出小数点后6位.

double num =11.09432178;

printf("num =%.7lf\n", num);//11.0943218

printf("num =%.2lf\n", num);//11.09

3.%m.nf保留至少m个字符,包括小数点,同时保留n位小数点。

printf("%06.3f\n",1.0f);//---->01.000

printf("%08.3f\n",10.23f);//--->0010.230

float height =173.42f;

printf("身高是:%f\n",height);//173.419998   %.2f  --> 173.42

你可能感兴趣的:(iOS学习之C语言基础学习day-02)