一、C语言的结构
* 代码中main是主函数的函数名,表示这是一个主函数,每一个C源程序都必须有,且只能有一个主函数(main函数)。
* 函数调用函数printf()的功能是把要输出的内容送到显示器去显示。
* scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。它们都有格式控制字符串,都有变量列表。不同的是,scanf 的变量前要带一个 & 符号。 & 称为取地址符,也就是获取变量在内存中的地址。
* 对于 scanf(),输入数据的格式要和控制字符串的格式保持一致。
* 格式控制符
* 注意:在编写代码的时候必须使用英文半角输入法,尤其是标点符号,初学者一定要引起注意。
* 注释:给程序员看,注释的代码不会编译执行。
(1)块注释。
用符号“ /* ”和“ */ ”标出注释的开始和结束,在符号“ /* ”和“ */ ”之间的任何内容都将被编译程序当作注释来处理。
(2)行注释。
用符号“ // ”标出注释行,从符号“ // ”到当前行末尾之间的任何内容都将被编译程序当作注释来处理。
二、变量与数据类型
基本类型是C语言内部预先定义的数据类型,也是实际中最常用的数据类型,比如整型、字符型、单精度型、双精度型等。
1、基本数据类型
short、int、long、char、float、double,这六个关键字代表C语言里的六种基本数据类型。
2、常量与变量
1、字符常量
* 字符常量是用一对单引号( ' ' )括起来的一个字符。例如,'b'、'='、'5'都是字符常量。在计算机中,字符常量有以下特点。
(1)字符常量只能用单引号( ' ' )括起来,不能用双引号或其他符号括起来。
(2)字符常量只能是单个字符,不能是多个字符。
(3)字符可以是字符集中的任何字符。
2、转义字符
3、变量
(1)标识符
* 标识符是用来标识变量、符号常量、数组、函数、文件等名字的有效字符序列。C语言规定,标识符只能由字母、数字、下划线组成,且第一个字符必须为字母或下划线。
例如:sum、_sum、dome、p2、Sir_Name等都是合法的标识符。
* 标识符中的字母是区分大小写的。一般情况下,变量名用小写字母,特殊的标识符用大写字母。
* 保留字(或者被称为关键字)不能用作于标识符。
* 在实际写程序的过程中定义标识符应做到“见名知意”。(意思是:看到这个名字,就大概能知道是什么意思。)
(2)关键字
C语言中一共有32个关键字:
关键字 | 说明 |
auto | 声明自动变量 |
short | 声明短整型变量 |
int | 声明整型变量 |
long | 声明长整型变量 |
float | 声明浮点型变量 |
double | 声明双精度变量 |
char | 声明字符型变量 |
struct | 声明结构体变量 |
if | 条件语句 |
else | 条件语句否定分支(与 if 连用) |
switch | 用于开关变量 |
case | 用于语句分支 |
for | 一种循环语句 |
do | 循环语句的循环体 |
while | 循环语句的循环条件 |
goto | 无条件跳转语句 |
continue | 结束当前循环,开始下一轮循环 |
break | 跳出当前循环;表示终止本层循环 |
default | 开关语句中的“其他”分支 |
signed | 声明有符号类型变量 |
unsigned | 声明无符号类型变量 |
union | 声明共用数据类型 |
enum | 声明枚举类型 |
typedef | 用以给数据类型取别名 |
const | 声明只读变量 |
extern | 声明变量是在其他文件正声明 |
register | 声明寄存器变量 |
static | 声明静态变量 |
volatile | 说明变量在程序执行中可被隐含地改变 |
void | 声明函数无返回值或无参数,声明无类型指针 |
sizeof | 计算数据类型长度 |
return | 子程序返回语句(用来终止一个函数并返回后面跟着的值) |
4、运算符与表达式
(1)算术运算符
C语言的算术运算符包括两个单目运算符('+'正和负'-')和双目运算符(加法( + )、减法( - )、乘法( * )、除法( / )、取模 ( % )5种。)。
其中加法、减法、乘法、除法运算符就是数学中的四则运算,求模运算就是求余数。
#include <stdio.h>
int main(){
int n = 10;
int m = 4;
float t = 5.5;
int a = n + m; //加
int b = n - m; //减
float c = m * t; //乘
double d = n / t; //除
int e = n % m; //求余
printf("a等于%d,b等于%d,c等于%f,d等于%lf,e等于%d",a,b,c,d,e );
}
运行结果:a等于14, b等于6, c等于22.000000, d等于1.818182, e等于2
(2)关系运算符: < 、> 、<= 、>= 、== 、!=
< (小于); > (大于); <= (小于等于); >= (大于等于); == (等于); != (不等于);
(3)赋值运算符: += 、 -= 、 *= 、 /= 、 %= 、 =
a += 1; ( 意思:a = a + 1; )
a -= 1; ( 意思:a = a - 1; )
a *= 1; ( 意思:a = a * 1; )
a /= 1; ( 意思:a = a / 1; )
a %= 1; ( 意思:a = a %1; )
a = 1; ( 意思: 是把右边的值,赋给左边的变量 )
(4)自增/自减运算符
C语言中还有两个特殊的运算符,即自增运算符"++"和自减运算符"--".自增、自减运算符对变量的操作效果分别是使变量增加1或减少1。
自增运算符(++)和自减运算符(--)是单目运算符,运算对象必须是变量,不能为表达式或常量。
(1)++a、--a表示变量在使用之前先自增1、自减1。
(2)a++、a--表示变量在使用之后先自增1、自减1。
#include <stdio.h>
int main(){
int a=1; //定义变量a=1
a++; //a++是使用之后先自增1
printf("现在a的值:%d",a); //现在a的值是2
a--; //a--是使用之后先自减1
printf("现在a的值:%d",a); //现在a的值是1
++a; //++a是使用之前先自增1
printf("现在a的值:%d",a); //现在a的值是2
--a; //--a是使用之前先自减1
printf("现在a的值:%d",a); //现在a的值是1
}
(5)逻辑运算符:
符号 | 功能 | 示例 | 含义 |
&& | 逻辑与 | A&&B | A、B两个表达式都为真时,逻辑运算结果为真 A、B两个表达式只要有一个为假,逻辑运算结果为假 |
|| | 逻辑或 | A||B | A、B两个表达式都为假时,逻辑运算结果为假 A、B两个表达式只要有一个为真,逻辑运算结果为真 |
! | 逻辑非 | !A | A表达式为真,逻辑运算结果为假 A表达式为假,逻辑运算结果为真 |
*逻辑表达式:逻辑表达式的结果也是一个逻辑值“真”或“假”,C语言用整数1和0表示。当逻辑表达式结果为“真”时,值为1;当逻辑表达式结果为“假”时,值为0。
(6)位运算符:
C语言提供的6类位运算符:
位运算符 | 含义 |
& | 按位与("与"运算符) |
| | 按位或("或"运算符) |
~ | 取反("取"运算符) |
^ | 按位异或("异或"运算符) |
<< | 左移("左移"运算符) |
>> | 右移("右移"运算符) |