1.什么是c语言?
:c语言是一种通用计算机编程语言,广泛应用于底层开发。是一门面向过程的计算机编程语言。二进制。
什么是程序:?
:程序是一组计算机能识别和执行的指令
源程序:又称源代码,未经编译按照程序设计语言规范书写的文本文件,人类可读的计算机 语言指令,后缀为.c
1.1 c语言程序的结构
(1)一个程序由一个或者多个源程序文件组成。
源程序文件包括3个部分
a.预处理指令:常见#include
b.全局声明:即在函数之外进行的数据声明(通俗来讲就是和编译器打个招呼,告诉编译器变量的类型)。
在函数外面声明的变量成为全局变量,在函数中声明的变量叫局部变量(后面会详解)。
c.函数定义(后期详解)。
(2)函数是c语言重要组成部分。
一个c语言程序由一个或者多个函数组成,有且只有一个main函数。
(3)一个函数包括两个部分。
a.函数首部:函数的第一行,包括函数名,函数类型,函数属性,函数参数名,参数类 型。函数名后面要加一对圆括号,里面写函数参数和类型,无参可以不写或者写void。
b.函数体:由声明部分和执行部分组成(由若干个语句构成),后期详解。
(4)程序总是从main函数开始执行,无论main函数位置在哪里。
(5)要求计算机的操作由函数中的c语句完成。
(6)每个数据声明和语句最后必须要加分号(;)。
如 c=a+b;
(7)c语言本身不提供输入输出语句。
(8)程序应当包含注释。
以/开始的单行/注释被称为c++风格的注释
以/*开始以*/结束的块式注释
1.1.2 最简单的c语言程序:(下面有详解)
注意:
1:一个c语言程序从main函数开始执行,main函数是整个程序的入口。
2:c语言程序最多只能有一个main函数。
3:c语言的main函数不只有这一种写法
printf函数介绍
printf是一个函数,功能是在屏幕上输出数据,但是这个函数不是我们自己进行底层实现的。
注意:printf函数包含在名为stdio.h的库函数里面,该库(也称头文件)包含了很多常用函数的实现代码,所以使用printf时要用#include来引用头文件
"今晚月色真美"介绍
被双引号""括起来的内容称之为字符串,用""引起来置于printf的括号内部的内容可以直接显示在屏幕。
注意:”今晚月色真美“此处的双引号必须是英文输入,c语言所有代码都必须是英文输入。
return 0;介绍
表示程序正常退出,return 提供0作为函数的返回值。
2 数据的表现形式
2.1 为什么存在数据类型?
:在日常生活中,有各种各样的数据,例如身高,体重,分数,所以产生了不同的数据类型。
2.2数据类型的大小与分类
计算机内部储存单位:
1位=1比特
1字=2字节
1字节=8位
1字=16位
常见整型数据的储存空间和范围类型字节数取值范围int(基本整型)4-2147483648~2147483647unsigned int(无符号基本整型)40~4294967295short(短整型)2-32768~32767long(长整型)4-2147483648~2147483647unsigned short(无符号短整型)20~65535字符型数据存储空间和值的范围类型字节数取值范围char1-128~127unsigned char10~255浮点型数据存储空间和取值范围类型字节数有效数字数值范围(绝对值)float46
0以及1.2*10的-38次方~3.4*10的308次方
double8150以及2.3*10的-308次方~1.7*10的308次方为什么数据会有这么多种类?
1.因为不同数据在内存占用的空间不同,一般而言,占用内存越大的数据,其能表示的数据范围越大 ,选用合适的数据类型来储存数据可以更好的节省内存的空间
介绍利用sizeof操作符计算各种数据类型大小(如下图示)
sizeof操作符的用法:sizeof(数据类型)/sizeof(变量名),通过sizeof运算符可以求出不同数据类型在内存中占用的内存。
3. 常量和变量
在计算机高级语言中,数据有两种表现形式:常量和变量。
3.1 常量:在程序运行过程中,其值不能被改变的量被称为常量。
(1)整型常量:如1000,12345,0,-345等都是常量
(2)实型常量 ,有两种表现方式
i.十进制小数形式,由数字和小数点组成,如123.345,0.345,-56.7,0.32,12.0等
ii.指数形式,如12.34e3(代表12.34*10的3次方),因为计算机无法输出上角或下角数
字,所以规定以字母e或者E代表以10为底的指数。注意:e或者E之前必须有数字,且
e或E后面必须为整数。
(3)字符常量,包括两种形式字符常量:
i.普通字符,用单引号括起来的一个字符,如'a','b','c','Z',注意:单引号只是界限符,字符
常量只能是一个字符,字符常量储存在计算机储存单元时并不是储存字符本身,而是根
据ASCII代码储存的。
ii. 转义字符,一种特殊形式的字符常量,以字符"\"开头的字符序列,常见以"\"开头的特
殊字符见下表。
转义字符及其作用转义字符字符值输出结果\''一个双引号输出双引号\?一个问号输出问号字符\a警告(alert)产生声音视觉信号\b退格光标当前位置后退一个字符\n换行光标移到下一行开头\t水平制表符光标移动下一个tab位置\o,\oo,\ooo,o代表一个八进制数与该八进制码对应的ASCII字符与该八进制对应的字符\xh[h...],h代表一个十六进制数与该十六进制码对应的ASCII字符与该十六进制对应的字符 (4)字符串常量, 如"girl","moon"等,用双引号将若干字符括起来,字符串常量指的是双引
号里面的全部内容(不包括双引号本身),注意不能错写成’girl‘,'moon'。单引号里面只
能包含一个字符,双引号里面可以包含一个字符串。
(5)符号常量,用#define指令,指定用一个符号名称代表一个常量。如:
#define PI 3.1416 //注意行末尾没有分号!
经过#define指令,以后本文件从此开始所有的PI都代表3.1416。这种用符号代表一个常
量的叫做符号常量。
注意:要区分符号常量和变量,符号常量不占内存,只是一个临时符号,代表一个值,预编译后这个符号就不存在了,所以不能对符号常量赋新值。习惯符号常量大写,便于区分。
3.2 变量:字面意思就是可以变化的量。
变量代表一个有名字的,具有特定属性的一个存储单元(存储器内可以存放一个字或若
干个字节的基本单位,后期会详解),用来存放变量的值,程序运行期间,变量的值可
以改变。变量必须先定义再使用!以下代码举例变量的使用
3.2.1 变量的初始化和赋值
变量的输出
int类型的占位符是%d,相当于第一个%d为zh占位 ,第二个%d为money占位,是一一对应的关系,但是不同的数据类型占位符会不同(%后面跟的字母不同)后期会详解。
根据变量做一个测试 ,看以下代码 :
scanf("%d%d",&zh,&money);这行代码通过scanf函数输入数据,其中这两个数据用
空格间隔,输入的数据会分别赋值给zh和money
注意:
1.scanf中的&(取地址符)不可省略
2.某些编译器可能会报错,比如vs,尝试将
#define _CRT_SECURE_NO_WARNINGS 1写在程序地一行
3.2.2全局变量和局部变量
作用域:限定这个名字的可用性的代码范围
局部变量:定义在函数内部的变量,其作用域仅限于函数内部。
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
像zh和money这种定义在函数大括号里面的变量称之为局部变量。
注意:当全局变量和局部变量的变量名字重复时,会优先使用局部变量(局部优先
原则)
全局变量:在所有函数外部定义的变量,其作用域为整个程序。
这段代码只有一个函数,zh变量是定义在main函数之外的,所以这里的zh就称为 全局变量,对于全局变量我们也可以对其进行正常的赋值操作。
时间紧迫,下期再见