如何快速复习C语言知识点

如何快速复习C语言知识点

1. 数据类型

1.1 基本类型

C语言的关键字、标识符

关键字类型字节数
char字符型1
int整型4
float单精度浮点型4
double双精度浮点型8

enum枚举类型
定义形式为:

enum | typeName{ valueName1, valueName2, valueName3, … };

enum是一个新的关键字,专门用来定义枚举类型,这也是它在C语言中的唯一用途;typeName是枚举类型的名字;valueName1, valueName2, valueName3, …是每个值对应的名字的列表。注意最后的;不能少。

1.2 构造类型

1.数组(一维数组、二维数组、多维数组)

数据类型 + 变量名[ ][ ] 一定注意是从开始计算的排列坐标

	char arr1[3]={'a','b','c'};
	int arr[2][2]={0,1,2,3};
2.结构体

结构体定义
struct 类型名{
成员表列
} 变量;

3.共同体 union

变量共同使用一个存储空间,定义和用法与结构体相似

typedef union{
 char c;
 int a;
 int b;
}Demo1;
 
int main()
{
 Demo1 d;
 d.a = 11;
 d.b = 2;
 d.c = 'H';
 printf("size: %d\n", sizeof(d));
 printf("%c  %d   %d\n", d.c, d.a, d.b);
 return 0;
 }

1.3指针类型

1.指针数组
	int (* arrPtr)[10] = NULL;   // 一个指针,它指向一个有10个int元素的数组
	int * arrPtr[10] = NULL;    //表示 arrPtr 是一个具有 10 个 int 类型指针的数组。
2.结构体指针

储存结构体类型的指针

	struct Student
	{	
		char cName[20];
	 	int number;
	}student1;
	struct Student*p;
	p=&student1;
	p->number = 100;//指针通过->访问结构体的变量
3.指针的指针

储存指针类型的指针

	int a = 1;
	int *q = &a;
	int **c = &q;
	//c = &q
	//*c = q = &a
	//**c = 1 = *q = a;

4.函数指针

如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针

	int Func(int x);   /*声明一个函数*/
	int (*p) (int x);  /*定义一个函数指针*/
	int a = 10;
	int b;
	p = Func;          /*将Func函数的首地址赋给指针变量p*/
	b = (*p)(a);//指针函数调用函数
5.无类型指针
	void *data = "Hello World";//一个无类型指针代替所有的类型,这里是存储字符型数据
6.指针常量和常量指针
const int * p ;// p is a point to int const ,p是一个指向常量的指针,指向的对象是一个常量,所以不能改变 *p(p指向内存地址)的值,但是p可以指向其它地址
int * const p;// p is a const point to int, p是一个常量指针,指向int,所以不能改变指针本身p的值,但是可以改变p指向内存地址的值

2.输入输出和运算符

输入输出方式 :

putchar(输出字符)
getchar(输入字符)

	char ch;
    ch = getchar();
    putchar(ch);

printf(格式输出)
scanf(格式输入)

	int a=0;
    printf("输入数据:\n");
    /*请注意,这里多了一个回车符\n*/
    scanf("%d\n",&a);
    printf("输出数据:\n",a);

puts(输出字符串)
gets(输入字符串)

	char s[81];
	gets(s); //输入bai一个字符du串zhi,最长80个字符,回车结束输入。
	puts(s); //将输入的字符串显示到屏幕上。
运算符:
'+','-','*','/','%','<','>','='

3.控制语句

3.1选择结构

1>if …else…

if(a>b) max=a;
    else max=b;

2>switch

	int n;
    scanf("%d",&n);    
    switch(n)
    {
       case 1:printf("一月\n");
       case 2:printf("二月\n");
       default:printf("错误\n");	
    }

3.2循环结构

1.for

	int i = 0;
	for(i=0;i<10;i++)
	{
		printf("%d\n",i);
	}

2.while

	int i = 10;
	while(i)
	{
		i--;
		printf("%d\n",i);
	}

3.do…while…

	int i = 10;
	do
	{
		i--;
		printf("%d\n",i);
	}while(i)

3.3其他控制语句

1.return 返回值
2.break 跳出当前循环
3.goto 无条件转移语句
4.continue 继续当前循环
5.exit()函数 退出

4.数据传递方式

4.1 参数传递
4.2返回值
4.3全局变量
4.4局部变量
4.5形式参数
4.6按值传递和按地址传递

5.函数

定义
声明
递归
调用
返回值

6.链表

通用链表(理解)

  1. 首先还是声明、定义、初始化。

  2. 相对于普通链表来说,通用链表是特殊的普通链表,去表在于通用链表将普通链表的数据域给单独拿出来了,并且分装成了一个结构体,原本的结构体的数据域用一个无类型的指针变量来存放数据域结构体的地址,头结点和尾结点(用无类型指针访问数据域的地址),数据就不再只是一种或者只是一开始定义的一类,同一份链表,可以适用相似的数据结构类型,从而达到通用的目的。

  3. 对于函数的封装,碰到数据域的地方要相对的用无类型指针强制转换去访问空间,打印、添加、定结点个数、删除、整体释放
    在这里插入图片描述

//链表结构体定义
	typedef struct note_t
	{
		void *date;
		struct note_t *pnext;//指向下一个指针的首地址
	}NOTE_T;
	typedef     NOTE_T*   User;  
	User date_assignment();  

7.文件

	掌握fseek、fopen 、fgetc、fread、fwrite,fclose,rewind函数

打开文件(创建文件)函数:
在这里插入图片描述

初来驾到,学写博客,用作复习总结。若有误,还请各位大佬海涵,若有闲,望能指点吾之愚错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值