C语言
C语言知识点
Yuri-Taylor
这个作者很懒,什么都没留下…
展开
-
C语言思维导图
原创 2020-10-20 17:10:55 · 223 阅读 · 0 评论 -
动态内存管理
一. 存在动态内存分配的原因int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间上面的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是有时我们需要的空间大小在程序运行的时候才能知道,这时候就要用动态内存开辟了。二. 动态内存函数(1)malloc和freevoid* malloc (size_t size);这个函数向内原创 2020-09-02 18:05:18 · 221 阅读 · 0 评论 -
自定义类型
一. 结构体1.结构体类型的声明(1)结构体的定义结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。(2)结构体的声明struct Stu{ char name[20]; int age; char sex[5]; char id[20];};//分号不能丢2.结构体的自引用struct Node{ int data; struct Node next;};原创 2020-09-02 17:59:10 · 243 阅读 · 0 评论 -
函数进阶
一. 函数的调用过程函数的调用过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存、现场保护。这块栈空间称之为函数栈帧。在函数调用的过程中ebp和esp这两个寄存器存放了维护这个栈的栈底和栈顶指针。ebp存放指向函数栈帧栈底的地址。 esp存放指向函数栈帧栈顶的地址。eg:#include <stdio.h>int Add(int x, int y){ int z = 0; z = x + y; return z原创 2020-07-22 21:37:47 · 200 阅读 · 0 评论 -
指针
一. 指针的概念 指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。指针就是用来存放地址的变量。指针的大小在32位平台是4个字节,在64位平台是8个字节。二. 指针和指针类型char *pc = NULL; int *pi = NULL; short *ps = NULL; long *pl = NULL;...原创 2020-07-22 21:10:17 · 178 阅读 · 0 评论 -
数据在内存中的存储
一. 数据类型//整型:char unsigned char signed charshort unsigned short [int] signed short [int]int unsigned int signed intlong unsigned long [int] signed long [int]//浮点型:floatdoublelong double//构造类型:数组类型 int [10]结构体原创 2020-07-22 20:54:48 · 223 阅读 · 0 评论 -
程序环境和预处理
一. 编译与链接1.组成程序的每个源文件通过编译过程分别转换成目标代码。2.每个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序 。3.链接器同时也会引入标准C函数库中任何被该程序用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。(隔离编译,一起链接)4.编译过程分为预处理、编译、汇编预处理:gcc -E 文本操作(#include,#define,删除注释行)编译:gcc -S 把C语言转化成汇编代码(语法、词法、语义分析,符号汇总)汇编:g原创 2020-06-07 22:53:44 · 172 阅读 · 0 评论 -
简单扫雷游戏(C)
game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_COUNT 10void InitBoard(char arr[ROWS][COLS], int rows, in原创 2020-06-06 21:58:30 · 680 阅读 · 0 评论 -
简单三子棋(C语言)
game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 3#define COL 3void InitBoard(char arr[ROW][COL], int row, int col);void DisplayBoard(char arr[ROW][COL], int row, int col)原创 2020-06-05 17:38:31 · 164 阅读 · 0 评论 -
数组
1.一维数组的创建和初始化(1)数组的创建数组是一组相同类型元素的集合。创建方式:type arr_name [const];//type:数组的元素类型//const:常量表达式,指定数组的大小不能分配大小为0的数组。(2)数组的初始化int arr1[3] = {1, 2, 3};char arr2[] = {'a','b','c'};//三个元素char arr2[] = "abc";//四个元素(\0)char *p = "abc";//把a的地址放入到p原创 2020-06-05 17:35:14 · 257 阅读 · 0 评论 -
简单函数
1.函数的概念函数的定义:子程序(子程序是一个大型程序的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相对其他代码,具有相对的独立性。一般有输入参数和返回值,提供对过程的封装和对细节的隐藏。这些代码通常被集成为软件库)。C语言中函数的分类:库函数,自定义函数。2.库函数使用库函数,必须包含#include对应的头文件。库函数包括: IO函数 字符串操作函数 字符操作函数 内存操作函数 时间/日期函数 数学函数...原创 2020-06-04 22:42:19 · 2269 阅读 · 0 评论 -
操作符和表达式
(1)算术操作符+ - * / %除了%操作符外,其他算术操作符可以作用于整形和浮点数;对于/操作符,如果两个操作数都为整数,执行整数除法。操作数只要有浮点数,执行浮点数除法;%操作符的两个操作数必须是整数,返回的是整除后的余数。(2)移位操作符<<左移操作数 >>右移操作数a.左移操作符移位规则:向左移一位,右边补0;...原创 2020-02-15 09:17:17 · 370 阅读 · 0 评论 -
C语言之常量与变量
1.第一个C程序#include<stdio.h>int main(){ //printf("abcdefg"); printf("hello"); /*printf('c'); printf("program");*/ return 0;}(1)必须定义入口点(main函数),有且仅有一个(2)mainret = main...原创 2019-09-20 01:19:37 · 525 阅读 · 0 评论 -
分支语句
1.if语句(1)if语句的语法if(表达式) 语句;if(表达式) 语句1;else 语句2;如果表达式结果为真,则执行语句1,若表达式结果为假,执行语句2;C语言中,0为假,非0为真。(2)if语句书写规范a.bool值和0比较int i;if(i == TRUE){ … }if(i == FALSE){ … }TRUE...原创 2020-02-03 15:20:16 · 116 阅读 · 0 评论 -
循环语句
1.while循环while(表达式) 循环语句;例如:在屏幕上打印1-10的数:#include<stdio.h>int main(){ int i = 1; while(i <= 10) { printf("%d ", i); i = ...原创 2020-02-03 15:27:53 · 324 阅读 · 0 评论