1) 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字”
2) C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义
C语言关键字
auto局部变量(自动储存) | break 无条件退出程序最内层循环 | case switch 语句中选择项 | char 单字节整型数据 |
const 定义不可更改的常量值 | continue 中断本次循环,并转向下一次循环 | default switch 语句中的默认选择项 | do用于构成 do.....while 循环语句 |
double定义双精度浮点型数据 | else 构成 if.....else 选择程序结构 | enum 枚举 | extern 在其它程序模块中说明了全局变量 |
float 定义单精度浮点型数据 | for 构成for循环语句 | goto 构成goto转移结构 | if 构成 if....else 选择结构 |
int 基本整型数据 | long 长整型数据 | register CPU内部寄存的变量 | return用于返回函数的返回值 |
short短整型数据 | signed有符号数 | sizoef计算表达式或数据类型的占用字节数 | static定义静态变量 |
struct定义结构类型数据 | switch构成 switch 选择结构 | typedef重新定义数据类型 | union联合类型数据 |
unsigned定义无符号数据 | void定义无类型数据 | volatile变量在程序中执行中可被隐含地改变 | while用于构成 do...while 或 while 循环结构 |
1) 关键字全部是小写
2) 在开发工具或者智能文本编辑工具中会显示其他颜色
1)标识符就是在程序中自定义的一些符号和名称。要跟关键字区分开来:关键字是C语言默认提供的符号,标识符是程序员自定义的
1) 标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来
2)其实,标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字
3)C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称。函数的名称就是标识符的一种。除了函数,以后还会学 到“变量”这个概念,变量的名称也是标识符
1)命名规则(一定要遵守)
2)命名规范(最好遵守)
合法标识符 非法标识符 注释
fromNo12 from#12 标识符中不能使用#符号
my_Boolean my-Boolean 标识符中不能使用“-”符号,应使用下划线“_”代替
Obj2 2ndObj 标识符不能使用数字开头
myInt int “int”是内建关键字
jack_rose jack&rose 符号“&”不能出现在标识符中
GUI G.U.I 标识符内部不能出现“.”分隔符
1)注释是在所有计算机语言中都非常重要的一个概念,从字面上看,就是注解、解释的意思
2)注释可以用来解释某一段程序或者某一行代码是什么意思,方便程序员之间的交流。假如我写完一行代码后,加上相应的注释,那么别人看到这个注释就知道我的这行代码是做什么用的
3)注释可以是任何文字,也就是说可以写中文
4)在开发工具中注释一般是豆沙绿色
1)单行注释以两个正斜杠开头,也就是以//开头,只能注释一行,从//开始到这行的结尾都是注释的内容
2)任何地方都可以写注释:函数外面、里面,每一条语句后面
多行注释以/*开头,以*/结尾,/*和*/中间的内容都是注释
1)被注释的代码不会参与编译
2)检查代码的作用
3)排除错误
1) 单行注释可以嵌套单行注释、多行注释
1 int main () 2 { 3 // 哇哈哈 // 呵呵呵 4 // /* fsdfsdf */ // sdfsdfsd 5 printf("单行注释可以嵌套单行注释、多行注释") ; 6 return 0 ; 7 }
1 int main () 2 { 3 /*// 作者:MJ // 描述:第一个C语言程序作用:这是一个主函数,C程序的入口点*/ 4 printf("多行注释可以嵌套单行注释") ; 5 return 0 ; 6 }
1 int main () 2 { 3 /* 哈哈哈 /*嘻嘻嘻*/呵呵呵 */ 4 printf("多行注释不能嵌套多行注释") ; 5 return 0 ; 6 }
1 int main() 2 { 3 // /*哈哈哈*/ 4 printf("下面的写法是错误的") ; 5 return 0; 6 }
生活中时时刻刻都在跟数据打交道,比如体重数据、血压数据、股价数据等。在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。
计算机中存储的数据可以分为两种:静态数据和动态数据。
1)静态数据
2)动态数据(临时数据)
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
常量,表示一些固定的数据
1)整型常量
包括所有的整数,如6、27、109、256、-10、0、-289等
2)浮点型常量(float/double)浮点型常量分为double和float两种数据类型
3)字符常量(char)
注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'
4)字符串常量
当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。
1)目的
任何变量在使用之前,必须先进行定义。
定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。
如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
2)格式
变量类型 变量名;
1 int main() 2 { 3 //在main函数中定义几个变量 4 int i; 5 char c; 6 int a, b; 7 return 0; 8 }
1) 赋值
1 i = 10 ; // 把10赋值给i变量
注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量i
2) 修改
i = 10 ;i = 20 ; // 变量i最后的值是20
int a = 10 , c = 11 ; 2 printf( " a=%d, c=%d " , a, c);
1 double height = 1.55; 2 char blood = 'A'; 3 printf("height=%.2f, 血型是%c", height, blood); 4 // %d/%i是一个格式符(占位符),只能输出整数 5 // %f用来输出小数,默认是6位小数 6 //%c用来输出字符
int a = 10 + 20 ;
1 int score; 2 printf( " score=%d " , score); // 未赋值,会输出一些乱七八糟的数字
3) 变量之间值的传递
1 int a = 10; //把10赋值给a 2 3 int b = a; //把a 赋值给b
1 a = b = 10 ; // 连续赋值
1)变量名相同int a = 10;int a = 12;
2)变量的作用域不对
1 int main() 2 { 3 { 4 int a =100; 5 } 6 printf("a=%d",a);//变量a内存空间已经被释放,就会报变量a未声明错误 7 return 0 ; 8 }
注意点:变量的作用域是从定义变量的那行代码开始,一直到所在的代码块结束。
为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。
1)内存以“字节为单位”
0x表示的是十六进制
2)不同类型占用的字节是不一样的,数据越大,所需的字节数就越多
2.变量的存储
1) 所占用字节数跟类型有关,也跟编译器环境有关
2)变量实例
1 int b = 10 ; 2 int a = 20 ;
3)查看内存地址:
1 int a; 2 printf("a的地址是:%p/n", &a); 3 //&a: 取得变量a的地址 4 //%p输出地址
3> 注意
一个变量一定先进行初始化,才能使用
1 int a; 2 printf("a的值是:%d/n", a); 3 //上面的写法是不建议的,输出的是一些乱七八糟的数字
这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量
1 int age; 2 scanf( " %d " , &age); // 先定义一个变量来存放要输入的值
1)用scanf函数接收3个数值,每个数值之间用中划线-隔开
scanf( " %d-%d-%d " , &a, &b, &c);
3个%d之间是用中划线-隔开的,因此我们在每输入一个整数后都必须加个中划线-,比如这样输入,不然在给变量赋值的时候会出问题
//逗号分隔
1 scanf( " %d,%d,%d " , &a, &b, &c); // 输入格式:10,14,20
// 井号分隔
scanf("%d#%d#%d", &a, &b, &c); // 输入格式:10#14#20
// 字母分隔
1 scanf( " %dx%dx%d " , &a, &b, &c); // 输入格式:10x14x20
2) 用scanf函数接收3个数值,每个数值之间用空格隔开
1 scanf( " %d %d %d " , &a, &b, &c);
3个%d之间是用空格隔开的,我们在每输入一个整数后必须输入一个分隔符,分隔符可以是空格、tab、回车
scanf的第一个参数中不要包含/n,比如scanf(“%d/n”, &a); 这将导致scanf函数无法结束