0、 前奏
学习iOS开发之前,先要掌握一些常用的Unix指令,如: pwd 查看当前路径 cd 改变路径
ls 列出当前路径里面的所有内容
ls –l 详细列出当前路径里的内容属性
touch 新建文件夹
open 打开
clear 清理屏幕
按tab键可以自动补齐指令名称、文件名、文件夹名等,按á可以返回上一条指令。一、开发过程:
1> 编写代码
2> 编译,把C语言代码翻译成0或1,指令:cc –c 文件名.c,注意空格!只检测语法是否合理,不会检测函数是否存在,编译成功后生成目标文件(文件名.o)
3> 链接,把.o目标文件跟系统自带的函数库合在一起,会检测函数是否定义,生成可执行文件,链接指令:cc文件名.o
4> 运行:./a.out二、 C语言程序结构
C语言程序结构:由函数组成。任何一个C语言程序都是由一个或者多个程序段组成的,每个程序段都有自己的功能,我们一般称这些程序段为函数。C语言程序的入口main函数,不管整个程序中有多少个函数,都是先执行main函数。格式
int main()
{
return 0;
}
注意:1> 只能有一个主函数(main函数,主函数是整个语言的入口)。
2> 自定义函数一般要放在main函数前(如果放在主函数后,则要在主函数前对自定义函数进行声明)。
3> 如果将自定义的函数放在main函数后,则首先要在main函数前声明,然后在main函数中调用。头文件用来声明函数,普通文件用来定义函数。
4> 不能重复定义函数,可重复声明函数。三、 关键字与标识符
关键字:C语言提供的具有特殊含义的字符,共32个,是默认提供的,全部小写。
标识符:自定义的一些符号或名称,目的是将东西区分开来,例如函数名和变量名。
命名规则: 1> 只能由26个英文字母的大小写、10个阿拉伯数字0-9、下划线_组成。
2> 严格区分大小写;
3> 不能以数字开头
4> 不能使用关键字做标识符。四、注释
// 单行注释
/* */ 多行注释
作用:1> 不会参与编译;
2> 检查代码的作用:先运行,然后注释运行,看看区别;
3> 排除错误.
使用注意:多行注释不能嵌套多行注释。要养成良好的注释习惯。五 、数据
分类:静态数据、动态数据,两者可以相互转换。
静态数据:以文件的形式存储在硬盘上(文档、视频等)。
动态数据:软件运行过程中产生的数据,一般保存在内存上(临时)。
数据大小:无论什么数据都是由0和1组成,数据越大,0和1就越多,字节就越大。bit比特位,byte字节,1byte=8bit,1KB=1024B,1MB=1024KB。
C语言中数据类型:常量:表示一些固定的数据。分为:整形常量(int)、浮点型常量(float、double)、字符常量(char)、字符串常量等。注:字符常量用单引号括住一个字符,字符必须是:数字或字母,不能是中文字符,错误写法:‘男’、'abc'。字符串常量使用双引号“”括起来。
变量:一个值经常改变或者不确定时用变量表示。
注:任何变量在使用前,必须先进行定义,定义变量可以在内存中分配存储空间,方便存储数据。
格式:变量类型 变量名;如:int num;
变量赋值:char c;
c=’A’;
每一次赋值操作都会把以前的值覆盖掉,用逗号隔开,可以定义多个变量。如:int a , b;
变量在函数中的作用域:从定义变量那行代码开始直到函数结束;
变量在代码块中的作用域:
1、函数的{}里面又包含的{}成为代码块;
2、变量如果是在代码块中定义,那么作用域在代码块的{}内;
3、代码块里找不到的东西,去外层找。
4、代码块可以提升性能,比如:及时回收不是用的内存,因为代码块结束后,相应的内存空间就被释放了。
5、在函数内部声明的变量称之为局部变量,在函数外面声明的变量称之为全局变量。
int main() { int a = 10; //代码块,里面定义的变量只能在代码块里使用,变量逃不出大括号范围。 { double height = 1.55; height = height + 1; }//运行到这里,删除代码块里面所有内容,释放内存,提高性能。 printf("height=%f\n",height); return 0; }
格式符:
字节分配原则:由大到小,优先分配地址大的字节给变量,即变量越优先定义,内存地址就越大(只要变量被定义,变量地址就会被分配,每个字节占8位)。
六、scanf函数注意点
1> scanf函数只接收变量的地址;2> scanf函数是一个阻塞式的函数,等待用户输入;3> 一次性输入多个值,并且以某个符号隔开,则用户输入时必须以该符号隔开;4> 如果scnaf参数之间分隔符是空格时,输入时可以用空格、tab和回车键代替;5> scanf函数中不能写\n换行。例如:scanf("%d\n",&a);( 错误)。