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个欢迎界面
需要注意的是,你可能看不到这个界面,那是因为你可能设置了启动 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 进入下一步操作。
在弹出来的窗口中,设置项目的一些必要信息
当项目的必要信息设置完成以后,点击 Next 按钮进入下一步操作。这个时候会让你选择项目存储路径。
选择你希望存储的路径后。点击 Create 按钮创建项目,你就可以看到 Xcode 的工作界面。
这里简单介绍 Xcode 的几个最重要的工作区域
源代码导航区:在这里可以浏览项目中的源文件,单击源文件可以再代码民编辑代码。
代码编辑区:编辑源代码有地方,在源代码导航区单击 main.c ,就可以在这里修改源代码。
控制台输出区域:当运行程序的时候,程序输出的信息会输出在该区域。
图中标注的几个区域可以单击右上角的图标或者隐藏。
编写源代码:
当新创建1个项目,在源代码导航区默认会有这个项目的源代码结构。单击 main.c 可以在代码编辑区直接编辑该源文件的代码。1个完整的 C 代码我们写过了,现在在 Xcode 中写代码试试。
在 Xcode 中编写源代码提示功能:只要敲出单词前几个字母 Xcode 会自动提示后面的内容(初学者建议关闭此功能)
关键字自动着色:在代码中代表不同功能的单词以不同的颜色显示。
代码自动缩进:使代码看起来有层次感。
错误提示:在 Xcode 中写代码的时候,Xcode 会实时检查我们写的代码是否符合语法规范,如果不符合会以红色的叹号来标注,当我们单击叹号的时候还会显示错误的原因和建议的修改方式。
当我们编写代码以后,接下来就是编译,链接,运行了。这一系列的操作我们不必再手动的去完成,我们只需要按下 Xcode 左上角的运行按钮或者按下键盘上的 Command + r 快捷键 Xcode 就会自动的我们的代码编译,链接,运行。程序如果有内容输出就会在下方的控制台输出区域。
程序输入的内容会输出区域。
这里介绍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 的。
这个时候,就会弹出新增的对话框,与前面一样。
设置好一切必要的信息后就可以创建1个新的 Target 到当前这个项目之中了。
这个时候查看源代码导航区,会多1个 Target的。
C 语言的注释:
注释是对一段代码的解释,在程度的代码比较多的时候,而且结构比较复杂的时候,可以给自己或者其他人阅读提示。
注释是不会参与编译的,所以如果有一句话或者多句代码不想要了,就可以注释掉。
注释的分类:
单行注释:
// + 被注释的代码 或者 快捷键 Command + /
多行注释:
/*被注释的代码*/ 没有快捷键
注释的使用注意点:
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)超过范围太大-->报错
a:如果给的数据太大,直接语法报错
2)赋值小数-->不报错
b:如果我们为 int 变量赋值1个小数,只会存储这个小数的整数部分.
3)如果超过的范围比较小
c:如果给的数据超过的范围并不多,这个时候存储的数据是一个随机值.
2.float型变量赋值的注意点
a:现在给一个 float 变量用赋值 double 小数赋值,会丢失精度
b:正确写法
float f1;
f1 = 12.34f;
c:在 c 语言中如果我们直接写一个小数,那么这个小数的类型是 double 类型的,如果我们希望这个小数是 1 个 float 类型的,那么就在这个小数的后面加 1 个 f/F 代表前面的这个小数的类型是 1 个 float 类型的
d:float 只能精确保存不超过 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个字节!
使用printf函数先导入头文件 #include
使用 printf 函数输出变量的值:
1:如何使用变量的数据?
什么时候想要使用变量的数据,就直接写上变量的名字就可以使用了.
上面的代码 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 个整型变量的值.
2).如果输出的类型是 float 类型的,那么就使用 %f 占位符,默认输出小数点后面6位.
3).如果输出的类型是 double 类型的,那么就使用 %lf 占位符,默认输出小数点后面6位.
4).如果输出的类型是 char 类型的,那么就使用 %c 占位符.
***务必记住,输出变量使用的占位符和变量的类型不匹配的话,那么输出的结果就是错误的.***
格式控制字符串中可以写多个占位符:
注意:
后面的变量一定要按照顺序来写,因为在填占位符的时候是按顺序来占位的,否则就会混乱.
ps:上面结果可能和你不同,在后面学习了进制才能说清,这里不深入讨论
后面的变量的个数要和前面一致,如果没有变量填的就是随机值.
总结:顺序不对,类型不匹配,输出结果就会有问题.
变量的问题:
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