一、关键字
1. 什么是关键字
1> 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字”
2> C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义
autodoubleintstruct breakelse long switch
caseenumregistertypedefcharexternreturnunion
constfloatshortunsignedcontinueforsignedvoid
defaultgotosizeofvolatiledoifwhile static
2. 关键字的特征
1> 全部都是小写
2> 在开发工具或者智能文本编辑工具中会显示特殊颜色。默认情况下,C语言中的所有关键字在Xcode中都会显示紫褐色
3. main函数中哪些是关键字
int、return
二、标识符
1. 什么是标识符
标识符就是在程序中自定义的一些符号和名称。要跟关键字区分开来:关键字是C语言默认提供的符号,标识符是程序员自定义的
2. 标识符的作用
1) 标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来
2) 其实,标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字
3) C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称。函数的名称就是标识符的一种。除了函数,以后还会学到“变量”这个概念,变量的名称也是标识符
3. 命名
1> 命名规则(一定要遵守)
只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成
严格区分大小写,比如test和Test是2个不同的标识符
不能以数字开头
不可以使用关键字作为标识符
2> 命名规范(最好遵守)
尽量起个有意义的名称,比如一个完整的英文单词,别人一看这个名称就能才能这个标识符的作用。如果不懂英文,你也可以用拼音,尽量不要起像abcde、sfsdfsdf等这类看起来没有意义的名称
如果标识符中含有多个单词,可以使用驼峰标识(除开第一个单词,后面每个单词的首字母都是大写):firstName、myFirstName,或者使用下划线_来连接:first_name、my_first_name
4. 常见的标识符命名错误
合法标识符 | 非法标识符 | 注释 |
fromNo12 | from#12 | 标识符中不能使用#符号 |
my_Boolean | my-Boolean | 标识符中不能使用“-”符号,应使用下划线“_”代替 |
Obj2 | 2ndObj | 标识符不能使用数字开头 |
myInt | int | “int”是内建关键字 |
jack_rose | jack&rose | 符号“&”不能出现在标识符中 |
GUI | G.U.I | 标识符内部需要出现“.”分隔符 |
三、注释
1. 什么是注释
1) 注释是在所有计算机语言中都非常重要的一个概念,从字面上看,就是注解、解释的意思
2) 注释可以用来解释某一段程序或者某一行代码是什么意思,方便程序员之间的交流。假如我写完一行代码后,加上相应的注释,那么别人看到这个注释就知道我的这行代码是做什么用的
3) 注释可以是任何文字,也就是说可以写中文
4) 在开发工具中注释一般是豆沙绿色
2. 单行注释
1) 单行注释以两个正斜杠开头,也就是以//开头,只能注释一行,从//开始到这行的结尾都是注释的内容
2) 任何地方都可以写注释:函数外面、里面,每一条语句后面
3. 多行注释
多行注释以/*开头,以*/结尾,/*和*/中间的内容都是注释
4. 注释的作用
1> 被注释的代码不会参与编译
注释是写给人看的,不是给计算机看的。计算机怎么可能看得我们写的中文嘛。因此,当编译程序的时候,并不会将注释编译到.o目标文件中
从.o文件的大小可以间接看出注释后的代码并没有被编译
2> 检查代码的作用
3> 排除错误
5. 注释的嵌套现象
1) 单行注释可以嵌套单行注释、多行注释
2) 多行注释可以嵌套单行注释
3) 多行注释不能嵌套多行注释
四、数据
1. 什么是数据
生活中时时刻刻都在跟数据打交道,比如体重数据、血压数据、股价数据等。在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。
2. 数据的分类
计算机中存储的数据可以分为两种:静态数据和动态数据。
1> 静态数据
概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。
存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。
哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。
2> 动态数据(临时数据)
概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有4G左右,因此要谨慎使用内存,不要占用太多的内存空间。
存储的时长:计算机关闭之后,这些临时数据就会被清除。
样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。
你可能会问:既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?有个主要原因是内存的访问速度比硬盘快N倍。
程序员最关心的是什么数据呢?
3> 静态数据和动态数据的转换
静态 -> 动态
动态 -> 静态
3. 数据的大小
1) 不管是静态还是动态数据,都是0和1组成的。0和1如何组成这么多的数据?
2) 数据都有大小,静态数据就会占用硬盘的空间,动态数据就占用内存的空间
3) 数据越大,包含的0和1就越多,比特位和字节
4) 1 KB = 1024 B,1 MB = 1024 KB,1 GB = 1024 MB,1 TB = 1024 GB
5. C语言中的数据类型
由于app中的数据种类繁多,为了方便操作数据,C语言数据进行了分类
五、常量
1. 什么是常量
常量,表示一些固定的数据
2. 常量的分类
1> 整型常量(int)
包括了所有的整数,比如6、27、109、256、-10、0、-289等
2> 浮点型常量(float\double)
浮点型常量分为double和float两种数据类型
u double:双精度浮点型,其实就是小数。比如5.43、-2.3、0.0等(注意,0.0也算是个小数)
u float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。
3> 字符常量(char)
u 将一个数字(0~9)、英文字母(a~z、A~Z)或者 其他符号(+、-、!、?等)用单引号括起来,这样构成的就是字符常量。比如'6'、'a'、'F'、'+'、'$'等。
注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'
4> 字符串常量
u 将一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。比如"6"、"男"、"哇哈哈"、"abcd"、"my_car4",其实printf("Hello World");语句中的"Hello World"就是字符串常量。
那究竟6、'6'、"6"在用法上有什么区别呢?这个先不作讨论,以后会介绍。
六、变量
1. 什么是变量
当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。比如游戏积分。
2. 定义变量
1> 目的
u 任何变量在使用之前,必须先进行定义。
u 定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。
u 如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
2> 格式
变量类型 变量名;
比如int num;
l 变量名属于标识符
l 变量类型
u 不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间
u 约束变量所存放的数据类型(方便运算)
3> 实例
int main()
{
int i;
char c;
int a, b;
return 0;
}
3. 变量的使用
1> 赋值
l 往变量里面存点东西,就是赋值。赋值语句后带个分号;
i = 10;
注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量i
l 第一次赋值,可以称为“初始化”
l 初始化的两种形式
u 先定义,后初始化:inta; a = 10;
u 定义的同时进行初始化:inta = 10;
2> 修改
l 可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值
i = 10;
i = 20;
变量i最后的值是20
l 使用printf输出一个\多个变量的值
int a =10, c =11;
printf("a=%d,c=%d", a, c);
l double\float\char的输出,格式符的一些小技巧
double height =1.55;
char blood ='A';
printf("height=%.2f,血型是%c", height, blood);
l 简单的加减操作
int a = 10 + 20;
l 没有初始化时不要拿来使用(下面的写法是不建议的)
int score;
printf("score=%d", score);
3> 变量之间值的传递
l 可以将一个变量的值赋值给另一个变量
int a =10;
int b = a;
l 连续赋值
a = b = 10;