C语言基础学习
文章平均质量分 83
介绍C语言基础知识
小心眼儿猫
这个作者很懒,什么都没留下…
展开
-
排序算法:快速排序和归并排序
快速排序(升序排序):快速排序的核心就是找到一个基准值(我们这里采用最后一个元素作为基准值),然后在剩下的区间里从左往右找到一个大于基准值的数,再从右往左找到一个小于基准值的数然后将二者交换,直到二者相遇一趟排序结束。然后在继续下一趟排序。 //////////////////////////////////////快速排序的递归版本/////////////////////////...原创 2018-06-03 11:37:57 · 507 阅读 · 0 评论 -
排序算法:冒泡,选择,插入,希尔以及堆排序
冒泡排序:时间复杂度O(N^2),空间复杂度O(1),稳定排序 这里的我们使用冒泡排序对数据升序排序,从后往前冒,每冒完一趟我们都会找到这一堆数据(待排序的数据)中最小的一个,并且该最小的数据就在待排序的数据中第一个位置上,此时我们修改有序的区间,再进行下一趟的冒泡排序,并且已经被排好的数据就不会二次被进行排序(二次排序是不必要的,这里就是借用一个有序区间避免了这种不必要)。#inclu...原创 2018-05-30 17:05:55 · 314 阅读 · 0 评论 -
C语言基础知识问答
1、什么是C语言? 答:C语言是一门通用的高级计算机编程语言 。(由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计开发出来的)2、C语言有什么特点? 答: 1、C语言是一个有结构化程序设计,具有变量作用域以及递归功能的过程式语言。 2、传递参数就是以值传递,也可以传递指针。 3、不同的变数类型可以用结构体组合在一起。 4、部分变量类型可以转换,例...原创 2018-05-07 00:18:16 · 1716 阅读 · 0 评论 -
C语言动态内存管理:malloc、realloc、calloc以及free函数
我们已经掌握的内存开辟方式有: int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是这种开辟空间的方式有两个特点: 1. 空间开辟的大小是固定的。 2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。 但是我们在实际的需求中,对于空间的需求,不仅仅是上述的情况。有时候我...原创 2018-05-17 13:54:04 · 842 阅读 · 0 评论 -
自定义类型(二):枚举和联合
枚举:顾名思义就是一一列举 比如在我们的日常生活中,一个星期有7天,一年有12个月等等都可以使用枚举来一一列举表示。 枚举类型的定义://例1enum sex{ male, //注意逗号 female, secret //注意最后一个成员末尾没有逗号}//例2enum Color{ red, //注意逗号 green, ...原创 2018-05-22 21:44:08 · 269 阅读 · 0 评论 -
自定义类型(一):结构体和位段
结构体:是一些值的集合,这些值称为成员变量,每一个成员可以是不同类型的变量。结构体的声明:struct tag{ member_list;}variable_list;//例如使用结构体来描述一个学生struct Stu{ char name[20];//名字 int age;//年龄 char id[20];//学号};//分号不不能丢...原创 2018-05-22 08:26:02 · 1123 阅读 · 0 评论 -
指针数组?数组指针??……
指针数组什么是指针数组呢?到底是指针还是数组呢??首先我们要明确一点,指针数组是数组而不是指针。这种数组与我们之前见的数组没什么两样,之所以叫他指针数组只是因为这个数组里的元素是指针。下面我们来举例辨析:1:int *arr1[100];2:char *arr2[100];3:char **arr[100];首先我们都能一眼知道int和char是整型和字符型,其次,我们要想知道到哪一个是指针数组...原创 2018-03-09 16:38:48 · 143 阅读 · 0 评论 -
C语言·关于栈帧
近日学到C语言中关于函数的相关知识,其中由函数的调用引入栈帧这个概念。栈帧很重要但对于初次接触的我来说,是有点晦涩难懂的,所以趁热打铁总结记录下来,为以后方便复习巩固。若有错误也请大家不吝赐教。#include#include int myadd(int x,int y){ int z = x+y; return z;}int main(){ int a = 0xAAAA原创 2017-12-09 19:56:13 · 1041 阅读 · 0 评论 -
C语言·可变参数列表
可变参数列表浅析原创 2017-12-14 23:24:17 · 1930 阅读 · 0 评论 -
C语言实现三子棋
在源文件中创建test.c和game.c文件,头文件中创建game.h文件。代码如下。 实现三子棋程序,只要我们能够理清楚思路,就可以知道其实它的做法并不难,重点在于实际写代码时需要多关注细节。这里我们可以写完一块就可以立马运行程序检查是否如我们所想的效果出现,如若不是便可立即查错纠错。test.c#include <stdio.h>#include <stdlib.h>#include <原创 2017-12-12 17:37:44 · 209 阅读 · 0 评论 -
C语言·数组知识小结
在C语言中我们经常用到数组,这其中有很多我们需要了解并且注意的地方。以下是我学习数组之后的一个简单总结。 这里我们详细说明一维数组和二维数组的相关知识。一维数组一维数组的创建 数组是一组相同类型元素的集合。数组的创建方式: type_t arr_name [const_n]; 例如:int arr[100];或者 char arr[100]等,但像i...原创 2018-04-30 15:58:22 · 357 阅读 · 0 评论 -
C语言·操作符小结
C语言中操作符分为以下几类:算术操作符:+ - * / % 1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。 2.对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。 3.%操作符的两个操作数必须为整数。返回的是整除之后的余数。移位操作符:<< >> 1、 <&...原创 2018-04-30 15:17:56 · 125 阅读 · 0 评论