一、学前需知
-
开发工具
windows平台:Visual C++6.0等 mac平台:Xcode6.0等 以下文章内容皆是以Xcode6.0为开发工具,clang编译器。
-
Xcode的一些常用快捷键
CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + SHIFT + S: 另存为 CMD + D: 添加书签 CMD + /: 注释或取消注释 CMD + : 设置或取消断点 CMD + R: 编译并运行(不触发断点) CMD + SHIFT + RETURN: 终止运行或调试 Ctrl + K :删除本行 Ctrl + A : 移动光标到本行行首 Ctrl + E : 移动光标到本行行尾 Command + Ctrl + S :创建快照
-
常用的Unix指令
/ ./ ../ cd pwd ls -l tab键 mkdir rmdir touch rm open clear
二、一个C语言程序的执行过程
-
编写代码
用编辑器编写.c源文件
-
编译
① cc -c name.c,生成.o目标文件,只检测文件有没有语法错误。 ② 可同时编译多个源文件,中间用空格隔开,如:cc -c a.out b.out。 ③ 分为三个阶段:预处理、分析、独立编译。
-
链接
① cc name.o,生成a.out可执行文件,可以通过-o name参数来改 变可执行文件的名字。 ② 可同时链接多个目标文件,如:cc a.o b.o。 ③ cc可以同时完成编译和链接任务,可编译源文件并与已有的目标文 件链接,如cc a.o b.c。
-
运行
① 在终端运行有以下两种方式 1)./a.out 2)根路径a.out
三、C语言的基本语法
-
关键字
C语言提供了32个关键字,将其简单的分类,如下:
① 变量类型:char、int、float、double、struct、enum、union ② 修饰类型:signed、unsigned、 short、long auto、static、const、 volatile、register、 extern、 ③ 流程控制:if、else、 switch、case、default、 for、while、do, goto、return
-
标示符
命名规范:
① 由字母、数字和下划线组成 ② 第一个字符不能使数字,只能是字母或下划线 ③ 区分大小写 ④ 尽量用有意义的单词作为标示符,做到见名知意 ⑤ 使用驼峰标志(每个单词首字母大写)或下划线(单词之间用_间隔) ⑥ 标示符的长度没有限制,但编译器可以忽略第31个字符以后的字符 ⑦ 编译器可以对用于外部名字的标示符进行限制,只是别前六位不区 分大小写的字符
-
注释
注释掉的内容不会参与编译,不影响可执行文件的大小,注释分为以下几种形式:
① 单行注释,如://这是注释掉的内容。快捷键,command +/ ② 多行注释,如:/*这是注释掉的内容*/。快捷键,command +/ ③ 使用注意,多行注释可以嵌套单行注释,但是不能嵌套多行注释 ④ 注释的作用:检测代码、排除错误
-
数据
分类:
① 基本数据类型:字符型、整型、浮点型 ② 指针 ③ 构造类型:数组、结构体、枚举、共用体 ④ void
常量
① 整型:如,12 ② 浮点型:如,23.2 ③ 字符型:如,'a' ④ 字符串型:如,"This is a C program"
变量
① 变量的内存分析: 1)定义一个变量,如int a,相当于在内存中分配一定的存储空间 给变量a 2)&a就是该段存储空间的地址值,a就是该段空间中存储的变量 值。 3)限定变量类型主要是为了在分配内存空间时,根据变量类型为 变量分配相应类型和大小的内存 ② 变量的作用域 1) 代码块作用域:从定义变量开始到该代码块结束,代码块内部 的变量会屏蔽代码块外部的同名变量 2) 文件作用域:在所有代码块外部定义的变量,从定义变量开始 到所在的源文件结束 3) 原型作用域:只适用于函数原型中声明的参数名,可以防止参 数名与程序其他部分的名字冲突 4) 函数作用域:只适用于语句标签,语句标签适用于goto语句。 goto语句会破坏程序结构,但在跳出多重循环时很有效 ① 交换两个变量值得三种方式(这里不使用插入代码的格式) 1)使用中间变量 { int a = 10; int b = 20; int temp; //交换 { temp = a; a = b; b = temp; } } 2) 使用加减运算 { int a = 10; int b = 20; //交换 { a = b - a; b = b - a; a = b + a; } } 3) 使用位操作符 { int a = 10; int b = 20; //交换 { a = a ^ b; b = a ^ b; a = a ^ b; } }
-
scanf函数
基本使用
① scanf函数是一个阻塞式的函数 ② 用占位符来接受输入的数据,用&name,来表示变量存储的内存 地址
使用注意
① 当输入多个数据时,分隔符要与scanf函数中的一致,若scanf 函数中无间隔符,则可以用适当的字符 ② scanf函数中的间隔符,空格、tab和回车是等价的 ③ scanf函数中的字符串参数中不能出现空格