考研专业课前期(快速过C语言)

总体:变量、运算符、表达式、控制流、函数、指针、数组、结构体、输入与输出、文件

一、类型、运算符与表达式

1.1 类型

种类:char(字符型)、int、float、double
加“配件”–》short、long(for int);signed 、unsigned(for char int)
注意点:
short (int)a;
signed char强制char可以存储有符号整数,unsigned char强制char可以存储无符号整数,,char不加任何限定,则是否有符号根据所在机器而定。
常量:
10 、10l(10L)、10.0【double】、10.0f/F【float】
10(十进制)、010(八进制)、0x10(十六进制)
‘0’【字符型常量,可用于计算,ASC码】;“I am Iron Man”【字符串常量,可拼接】
在这里插入图片描述

1.2 运算符

  1. % 取余运算符
    ×%y 结果是x除以y的余数部分。x和y必须是整型操作数。在有负操作数的情况下,取模运算结果的符号取决于具体机器的实现。
  2. ++ --自增 自减:x++(先返回x的值,后x+1);++x(先x+1,后返回+1后的x的值)
  3. 逻辑运算符:&& || !【与或非】
  4. 位操作符:&(按位与) | (按位或)<< (算数左移) >> (算数右移)~(按位取反) ^(按位异或:相加但不进位)
  5. 其他运算符:
    sizeof 运算符 :sizeof(数据类型、变量或常量)
    问号运算符 : <表达式1>?<表达式2>:表达式3> //1为真时,输出2;否则为3

1.3 类型转换

数据位短的向长的转换
注意:short int + char --》int;只要float 和long同时出现 就会变成double
强制转换 (类型名)表达式
注意:类型转换只体现在结果上,并不会改变被转换变量的类型。

二、控制流(循环和判断)

  • if语句
    在这里插入图片描述
  • switch语句
    在这里插入图片描述
  • while语句(不知道循环多少次时)
    在这里插入图片描述
  • for 循环(知道循环多少次时)
  • do-while循环 至少做一次

三、函数

return语句直接退出函数
函数默认返回int型
函数参数:若为x—》a本身没变化,只是x在变;若&x(x是引用型)—〉相当于对操作
作用域规则

  • 注意语句块
  • 内层可看外层;外部不能看内部
    静态变量:static int i = 0;

递归:直接递归(自己调用自己)或间接递归

四、指针与数组

  • &a;//取地址
  • int a = 10;int *a_ = &a;//a的地址赋给指针型变量a_;即a_指向a
  • *a_等于a;//指针功能之一;⚠️int *a_ 与 *a_不同
  • 用指针与数组的首地址来访问数组每一个元素
    `
int main()
 {
	int a[4] = {1,2,3,4};
	int *p = a;//把数组a的首地址赋给p
	 forint I = 0;I<4;I++)
			cout<<*(p+i)<<“ ”;
			cout<<endless;
			return 0;
}

`

五、结构体和类

  • typedef:用来给数据类型取新的名字
typedef int MYINT
typedef struct {int x ; int y;} Point;
Point point;
//或
typedef struct 
{
	int x ; 
	int y;
} Point;
Point point;
//或
struct Point
{
	int x ; 
	int y;
} ;
struct Point point;

  • 指向结构体的指针与通过指针获取结构体元素
#include<stdio.h>
typedef struct
{
	int x;
	int y;
} Point;


int main()
{
	Point point;
	Point *p;//p为Point类型的指针或指向结构体(point)的指针
	p = &point;//p指向结构体变量point
	p->x = 1;//p->x 表p取x的值
	p->y = 2;
	printf("%d,%d",p->x,p->y);

	return 0;


}

  • 结构体的自引用结构
#include<stdio.h>
typedef struct Point //这里注意 : Point和下面第一个Point要一致,和第二个不一定要一样
{
	int x;
	int y;
	struct Point* next;//next是指向当前结构体自身的指针

} Point;


int main()
{
	Point p1, p2, p3;
	Point* p;//p为指向结构体(Point)的指针
	p1.x = 1; p1.y = 2;
	p2.x = 3; p2.y = 4;
	p3.x = 5; p3.y = 6;

	p1.next = &p2;
	p2.next = &p3;
	p3.next = NULL;


	for (p = &p1; p != NULL; p = p->next) {
		printf("(%d,%d)\n",p->x,p->y);
		//实现通过next指针来遍历几个结构体变量
	}
	return 0;


}

结构体和指针总结:

  • 看到 。。。* 就是指针(也是变量,值是某个变量的地址),说的时候要说“指向。。。的指针”
  • 结构体也是一个变量

六、申明、定义和初始化

6.1 申明和定义的区别

声明只是给变量、函数、结构体、联合体命名,表明程序有该变量、函数、结构体、联合体。

定义是具体给变量分配存储空间、给出函数的具体实现、指明结构体和联合体成员。

简单理解:如果程序中仅仅有声明,缺少定义实现,最终无法生成可执行的程序,因为信息不完整,无法完成编译全过程。

C语言中声明和定义的原则是:

声明可以出现多次,定义有且只能出现一次。

定义必须有,且只能出现一次。

声明和定义可以同时出现。

声明和定义可以分为以下几类:

变量的在声明时同时会定义(涵盖所有数据类型)

函数类型的声明和定义

结构体或联合体类型的声明或定义

数组类型的声明或定义

6.2 初始化

就是把变量赋为默认值,把控件设为默认状态,把没准备的准备好。

数据类型

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笔记本IT

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值