C基础知识
XITMan
这个作者很懒,什么都没留下…
展开
-
查找算法和排序算法(顺序查找,二分查找,块查找,哈希查找,冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,堆排序,计数排序,桶排序,基数排序)
算法的时间复杂度并不能代表算法的实际执行时间,有些时候看似复杂度高的速度反面快。查找算法:顺序查找:对待查找的数据没有要求,时间复杂度: O(n)二分查找:对待查找的数据必须有序,时间复杂度: O(logn)块查找:是一种数据处理的思想,不是特定的算法,当数据量过多时,可以先把数据进行分块处理,然后再进行查找,例如英语词典。哈希查找:数据 经过哈希函数 计算出数据在哈希表中的位置,然后标记,方便之后的查找,它的时间复试度最快能达到:O(1)。但是该算法有很大局限性,不适合浮点型、字符串型原创 2020-08-17 21:43:08 · 514 阅读 · 0 评论 -
数据结构总结(线性结构,树型结构,图型结构,顺序结构,链式结构)
一、什么是数据结构1、数据结构的起源1968年,美国的高纳德教授开设了一门基本算法的课程,开创了数据结构的先河。数据结构是一门研究数据之间关系和操作的学科,而非是计算方法。数据结构+算法=程序 沃思凭借这名个论点,获得图灵奖,这句话展示出了程序的本质。2、数据结构的基本概念数据:所有能够输入到计算机中去描述事物的符号。数据项:有独立含义的数据最小单位,也叫域。数据元素:数据的基本单位也叫节点、记录。数据结构:数据元素和数据关系的集合。算法:数据结构所具备的功能,解决特定的问题的方法。3原创 2020-08-16 19:29:18 · 6608 阅读 · 2 评论 -
输出缓冲区和输入缓冲区
输出缓冲区:程序输入的数据并不能立即显示在屏幕上,而是先存储在输出缓冲区中,满足一些条件后才显示出来。1、遇到\n后2、遇到输入语句3、当输出缓冲区满4K4、当程序结束5、手动刷新 fflsuh(stdout)缓冲区机制可以提高数据的读写速度。输入缓冲区:程序并不立即获取到屏幕上输入的数据,而按下回车键后程序才从输入缓冲区中读取数据。1、当读取整型或浮点型数据时,而缓冲区中的数据是字母或符号,此时将读取失败,并且会影响接收下来所有的数据读取。2、fgets可以指定读取size-1字符,原创 2020-07-23 13:47:09 · 1934 阅读 · 1 评论 -
指针的使用(空指针 野指针 指针数组 数组指针 二级指针 指针函数)
什么是指针:指针是一种数据类型,使用它可以用来定义指针变量,指针变量中存储的其实是整数,这种整数代表了内存的编号。为什么要使用指针:1、函数之间相独立,但有些时候需要共享变量。传参是值传递全局变量容易命名冲突使用数组还需要传递长度命名空间是独立的,但地址空间是同一个,所有指针可以解决这个问题。2、由于函数之间传参是值传递(内存拷贝),对于字节数比较多的变量,值传递效率较低,如果传递变量的地址只需要传递4|8字节。3、堆内存无法取名字,它不能像data、bss、stack让变量名与内存建立联原创 2020-07-17 20:52:40 · 392 阅读 · 0 评论 -
递归的实现(小案例)以及递归的优缺点的总结 斐波那契数列 汉诺塔问题 0-9全排列
递归是什么递归可以实现分治这种算法,就是把一个复杂的大问题,分解成若干个相同的小分问题,直到问题全部解决。递归案例斐波那契数列#include<stdio.h>int get_fibonacci(int number){ //第一个和第二个斐波那契数列值为1 if( 1==number || 2==number ) { return 1; } //第三项开始的斐波那契数列是前2项的和 else {原创 2020-07-15 21:05:20 · 593 阅读 · 0 评论 -
《C Primer Plus》学习笔记(第十一章到第十二章)
第十一章:字符串和字符串函数字符串是以空字符(\0)结尾的char类型数组。puts()函数只显示字符串,而且自动在显示的字符串末尾加上换行符。用双引号括起来的内容称为字符串字面量,也叫做字符常量。用单引号括起来的内容是一个字符。字符串常量属于静态存储类别。定义字符串数组时,必须要让编译器知道需要多少空间。要多一位存储‘\0’。可以在初始化的时候让编译器计算数组的大小。字符串的字面量被视为const数据(类似常量)。如果不修改字符串,不要用指针指向字符串字面量。通常,程序要完成某项操作只原创 2020-06-19 15:36:38 · 246 阅读 · 0 评论 -
《C Primer Plus》学习笔记(第九章到第十章)
第九章:函数函数是完成特定任务的独立程序代码单元,使用函数可以省去编写重复代码的苦差。如果程序要多次完成某项任务,用函数会方便很多。函数让程序更加模块化,从而提高了代码的可读性,更方便后期的修改、完善。描述性的函数名能清楚的表达函数的用途和组织结构。然后单独设计和测试每个函数,直到函数都能正常完成任务。在动手编写代码之前,仔细考虑一下函数应该完成什么任务,以及函数和程序整体的关系。函数原型告诉编译器函数的类型,函数调用表明在此处执行函数;函数定义明确的指定了函数要做什么,任何程序在使用函数之前都要声明原创 2020-06-09 18:33:47 · 214 阅读 · 0 评论 -
《C Primer Plus》学习笔记(第七章到第八章)
第七章:C控制语句:分支和跳转分支结构:让程序根据测试条件执行相应的行为跳转语句:它将程序流转换到程序的其他部分1.if语句即使if语句由复合语句构成,整个if语句仍被视为一条语句。条件为真则执行语句内的内容,为假则跳过if,继续执行程序。如果要在if和else之间执行多条语句,必须用花括号把这些语句括起来成为一个块。如果不括则只认为下一条指令是if或else的一部分。if只和最近的一个else配对。else if多重选择 可以配合if使用2.getchar()和putchar()getc原创 2020-06-06 22:56:54 · 225 阅读 · 0 评论 -
C语言优先级全(转)
说明:同一优先级的运算符,运算次序由结合方向所决定。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符‘!’属于单目运算符,并不属于逻辑运算符。单目运算符、条件运算符、赋值运算符的结合性是从右至左,其他运算符结合性是从左至右。同一运算符有优先级之分(比如算符运算符的乘法的优先级比加法优先级高)。运算符的优先级分为15个等级。...转载 2020-06-06 08:26:43 · 247 阅读 · 0 评论 -
C语言代码规范(编程规范)
什么叫规范?在C语言中不遵守编译器的规定,编译器在编译时就会报错,这个规定叫作规则。但是有一种规定,它是一种人为的、约定成俗的,即使不按照那种规定也不会出错,这种规定就叫作规范。虽然我们不按照规范也不会出错,但是那样代码写得就会很乱。大家刚开始学习C语言的时候,第一步不是说要把程序写正确,而是要写规范。因为如果你养成一种非常不好的写代码的习惯,代码就会写得乱七八糟,等到将来工作面试的时候,这样的习惯可能会让你失去机会。代码如何写才能规范那么代码如何写才能写得很规范呢?代码的规范化不是说看完本节内容后就转载 2020-06-06 08:04:57 · 360 阅读 · 1 评论 -
《C Primer Plus》学习笔记(第五章到第六章)
第五章:运算符、表达式和语句1.while循环原理当程序第一次到达while循环时,会检查圆括号中的条件是否为真,为真会运行块(花括号以及被花括号括起来的部分),如果不用花括号会运行到下一个;为止,运行完后会继续回到入口部分检查条件。while适合用来处理一些循环次数不确定的循环2.赋值运算符:=‘=’号左侧的项必须是一个变量名,右值指的是能赋值给可修改左值的量,且本身不是左值,赋值的顺序是从左往右。a=b=c=6;首先6赋值给c,c赋值给b,b最后赋值给a。3.符号运算符:-和+二元运算符需原创 2020-06-05 14:55:59 · 446 阅读 · 0 评论 -
《C Primer Plus》学习笔记(第三章到第四章)
第三章:数据和C1.常量和变量常量是整个程序运行中没有变化,变量会被改变或者赋值。2.数据类型关键字signed char 1 -128~127signed short 2 -32768~32767signed int 4 -2147483648~2147483647signed long 4/8 -9223372036854775808~9223372036854775807unsigned char 1 0~255unsigned short 2 0~65535unsigned in原创 2020-06-04 16:40:28 · 179 阅读 · 0 评论 -
《C Primer Plus》学习笔记(第一章到第二章)
第一章:初识C语言1.1C语言起源1972,贝尔实验室 丹尼斯.里奇和肯.汤姆逊在开发UNIX操作系统时设计了C语言(B语言基础上设计的)。1.2C语言的优点:1.C语言编写的程序更易懂、更可靠。2.C语言是高效的语言(更接近机器语言)。3.可移植性强4。强大而且灵活,用在很多方面5.面向程序员(对程序员很友好)。1.3C语言的缺点1自由度高但也更容易出错,需要小心。2.运算符多,需要多加注释,否则有时候很难阅读。1.4编译器的功能编译器是将高级计算机语言转化为机器语言。1.5使原创 2020-06-03 14:23:50 · 235 阅读 · 0 评论