-
关键字基本概念:已被C语言本身使用,不能做其他用途使用的字。关键字不能做变量名、函数名等。
-
32个关键字:auto,double,int,struct, break,else,long,switch,case,enum,register,typedef,char,extern,return,union,const,float,short,unsigned,continue,for,signed,void,default,goto,sizeof,volatile,do,if,while,static
-
数据类型关键字
基本数据类型(5个):void,char,int,float,double
类型修饰关键字(4个):short,long,signed,unsigned
复杂类型关键字(5个):struct 结构体声明;union 共用体声明;enum 枚举声明
Typedef 声明类型别名;sizeof
存储级别关键字(6个):auto,static,register,extern,const,volatile
-
流程控制关键字
-
跳转结构(4个):return ,continue ,break, goto
-
分枝结构(4个):if,else,switch,case
-
循环结构(3个):for,do,while
-
Xcode中,所有的关键字都有特殊的颜色区别
-
标识符:在c语言中,符号变量,变量,数组,函数等都需要一定的名称,成为标识符
-
标识符划分:关键字、预定义标识符和用户标识符
-
标识符命名规则:a.只能用字符、数字、下划线或美元符号$组成b.不能以数字开头 c.不能与关键字崇明 d.严格区分大小写
例如: int abcd;//abcd是标识符(中文可以编译,但是尽量不用中文,易出错)
-
标识符命名规范:a.起一个有意义的名字(能够提高代码的可读性)
b.驼峰命名:如果标识符由多个单词构成,第一个单词外,其余单词首字母均大写或首字母均大写。例如:userName,userLongFlag
c.命名应当直观且可以拼读,要望文知意,便于记忆和阅读、
d.命名长度应适当
e.尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号
f.对在多个文件之间共同使用的全局变量或函数要加范围限定符。例如db_userName
g.标识符名分为两部分:规范标识符前缀(后缀)+含义表示
10. 注释的目的:注释是对代码的解释说明,是写给程序员看的,方便程序员之间交流
11. 注释的常见作用:解释代码,做函数说明,做思路分析
12. 使用注释的特点:编译器直接跳过,不参与编译
13. 注释使用:a.单行注释:// 快捷键command+/
b.多行注释:/* */
14.注释使用注意:a多行注释可以回车,单行不可以;b单行注释可以嵌套多行注释,但是要求单行注释要和多行注释在同一行(无意义);c多行注释可以嵌套单行注释;d 多行注释不可以嵌套多行注释
15.数据的计量单位: 1B(Byte字节)=8bit(位)
1kb=1024B 1MB=1024kb 1GB=1024MB 1TB=1024GB
16.
17.内存分为内存地址和内存单元
18.不同数据类型占用不同的存储空间:
19.不同数据类型表示的范围:
20.常量:表示一些固定的数据,也就是不能改变的数据
21.常量分类:整型常量(二进制,八进制,十进制,十六进制)
实型常量(单精度,双精度)
字符常量(普通字符,转义字符)
字符串常量,注意字符串常量和字符型常量是不一样的。
22.不同常量的表示方法:
1)整型常量:
a十进制整型:10,18
b 八进制整型:以0开头,例如:045
c 十六进制整型:以0x开头,例如:0x438fa
d 二进制整型:以0b(0B)开头,例如:0b11111
2)实型(小数)常量的表示方法:
a 单精度常量:以f结尾,占用4个字节,例如:2.3f
b 双精度常量:计算机中默认的以双精度的形式表示一个小数,例如:2.3
3)字符型常量表示:
a.普通字符:用单引号(’ ‘)括起来的单个字符,就是表示字符常量:’a‘,’*‘
b.转义字符:例如:’\n’, ’\t’
4)字符串常量
用双引号括起来,里面可以是字符、数字、符号。例如:”abc“
23.变量:代表内存的某个空间,取值可以变,是数据的基本单元,用来存放经常变化的数据。由变量名与变量类型组成,分为全局标量和局部变量。
24.变量的名称是我们操作变量(存取数据)的依据。
25.变量的使用:a 定义一个变量 b 变量的初始化(清空) c使用变量
26.定义变量:
格式1: 变量类型 变量名称;
例如:int a;//定义了一个int类型(4个字节)的变量,变量名是a
格式2:变量类型 变量名1,变量名2,变量名3;
例如:int a,b,c,d//定义了4个int类型的变量,变量名分别为a,b,c,d
27.变量名的命名规范:a严格遵守标识符的命名规范 b变量名不能同名(某些情况下可以)
28.int a;//a有值,可能是系统数据或上一个程序遗留的,或垃圾数
29.变量的初始化:a定义的同时进行赋值(完全初始化和部分初始化) b先定义变量,后初始化 c用一个变量,初始化另外一个变量。例如:int num1=num2;d给变量连续初始化:intnum1,num2;num1=num2=10
30.变量的使用(存值和取值):a进行赋值 b变量操作:运算、判断等
31.关于变量使用的注意点:a等号左侧必须是一个变量 b等号右侧可以是变量、常量、表达式 c等号左侧一定不能是常量
32.变量的作用域: 1)局部变量(内部变量):局部变量在函数内作定义说明,其作用域仅限于函数内,离开改函数后再使用这种变量是非法的。注意:在代码块的内部可以定义和代码块外部同名的变量,块内部的会暂时屏蔽(外部的不起作用)块外部的变量的作用域
2)全局变量的使用:在函数的外部定义的变量是全局变量。作用域:从定义的位置开始,到文件末尾
33.printf函数:a使用时,包含一个头文件“stdio.h”
b printft使用格式:printf(“格式控制字符串”,变量列表);
c 格式控制符:%d 输出一个10进制的整数;%f 输出一个实数类型的数据(默认输出六位小数),只打印小数点后两位:printf(”%.3f“,f1);
printf(”-m.nf”,f):m表示总的位数(列数),n表示小数点后几位。-是左对齐
%c 输出一个字符
%s 输出一个字符串
%o 输出一个八进制数
%x 输出一个十六进制数
%p输出地址
34.为什么变量要区分类型:为了合理使用内存,提高运算效率
35.%f精度问题: float打印出来后,精度小数点后6位,有效数字7位
Double类型,精度小数点后6位,有效位15位
36.转义字符:\n 换行 \t tad \\ 打印一个\
37.Scanf函数(阻塞式函数):格式 scanf(“格式控制字符串”,输入项地址列表);
38. 常见的格式控制符:
39. scanf函数不允许写%m.nf,但是%mf是可以的,输出数字是m个有效数字,小数点占一位
40.scanf使用注意事项:a 接受单个变量值的时候,在输入值之前,如果我们输入了空格,回车,tad,都会被忽略
b.scanf函数遇到回车时结束
c.当输入两个数时,以空格或回车隔开
d.输入完第一个数以后,如果中间添加了回车,空格,tad,都会被忽略
41.scanf输入混合数时, 为了防止输入空格造成错误,可以通过添加普通的分隔符解决。例如:scanf(“%d,%c”,&a,&ch);
42.scanf函数“*”的使用,scanf(‘%d%*d%d,a,b);、//%*d忽略一个字符 %*c 忽略一个字符
43.scanf函数中尽量不使用\n,如果使用了,1)在输入值中,随便输入一个内容 2)在数字后输入\n
44.scanf运行的原理:1)当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区,然后scanf函数会根据格式控制的字符串的要求,从输入缓冲区依次去想要的内容。如果从缓冲区中取得内容和格式要求一致,则把值存放在变量中。如果格式不一致,则不修改变量的值。2)如果缓冲区中还有内容,不会提示再次输入