C学习笔记
每木昔月
这个作者很懒,什么都没留下…
展开
-
七大经典排序算法总结(C语言描述)
转载自:https://www.cnblogs.com/maluning/p/7944809.html目录一.交换排序1.冒泡排序2.快速排序二.插入排序1.直接插入排序2.希尔(shell)排序三.选择排序1.直接选择排序2.堆(Heap)排序四.归并排序正文简介 其中排序算法总结如下: 一.交换排序交换排序的基本思想都为通过比较两个数的大小,当满足某些条件时对它进行交换从而达到排序的目的。1.冒泡排序基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一转载 2020-11-17 15:24:33 · 255 阅读 · 1 评论 -
C语言 值传递和地址传递
值传递这种方式使用变量、常量、数组元素作为函数参数,实际是将实参的值复制到形参相应的存储单元中,即形参和实参分别占用不同的存储单元,这种传递方式称为“参数的值传递”或者“函数的传值调用”。值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。来看下面一个调用示例:#include <stdio.h>/* 变量x、y为Swap函数的形式参数 */v转载 2020-08-14 16:15:40 · 1581 阅读 · 3 评论 -
进程与线程的区别? 进程间通信与线程间通信
要理解进程与线程先来看多任务机制:多任务处理机制是指用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务。多任务操作是系统使用某种调度(shedule)支持多个任务并发执行,多任务操作系统通常有三个基本概念:任务、进程和线程。进程的基本概念:进程是指一个具有独立功能的程序在某个数据集合上的动态执行过程,它是操作系统进行资源分配的基本单元。简单的说,进程是一个程序的...原创 2019-12-03 12:01:41 · 647 阅读 · 0 评论 -
C语言基础学习笔记——宏
宏定义:#define用来定义一个标识符和一个字符串,用这个标识符替代这个字符串。1.不带参数的宏定义#define 宏名 字符串①#表示这是一条预处理命令;②宏名,是一个标识符,要符合标识符的命名规则,并要求大写;③字符串的位置可以是常量、表达式、格式字符串注意:宏定义不是语句,不需要在末尾加分号;在编写程序时,通常将所有的#define放到文件开头的位置。#undef的作用:结束...原创 2019-12-18 11:59:46 · 151 阅读 · 0 评论 -
C语言基础学习笔记——内存管理(malloc/free)
程序的内存区域分为:代码区:存放程序代码和各个函数数据区:存放程序中的全局变量和静态变量、常量栈区(stack):存放局部变量、形参等,内存空间很小,由系统管理。堆区(heap):存放动态数据,需要使用指针访问。动态内存分配,内存空间很大,由用户自己管理。局部变量:也称为内部变量,只能在定义它的函数内部使用,不能被该函数外的代码使用,函数调用结束后,局部变量所占用的内存会自动释放,局部变...原创 2019-12-18 11:32:38 · 233 阅读 · 0 评论 -
C语言基础学习笔记——联合体
联合也是一种数据类型,它是一种特殊形式的变量,和结构体贴非常相似。其定义形式和结构体也类似,主要为:union 联合名{ 数据类型成员名; 数据类型成员名; ...}联合变量名;比如:union perdata{ int a; char ch;}x,y;在这里,perdata是联合名,就像int、char一样,之后可以用来定义联合变量;a和ch是这个联合体的成员;x和...原创 2019-12-18 10:44:11 · 108 阅读 · 0 评论 -
C语言基础学习笔记——结构体
1、结构体类型的定义和变量的定义结构体是一种构造数据类型(构造数据类型:数组类型、结构体类型(struct)、共用体类型(union))用途:把不同类型的数据组合成一个整体,类似Java中的类,但不同的是,C语言的构造体中木有函数(即Java中的方法)———自定义数据类型1.1 定义一个结构体类型的一般形式struct [结构体名]//struct是关键字,不能省略;结构体名为合法标识...原创 2019-12-16 12:09:16 · 483 阅读 · 0 评论 -
C语言基础学习笔记——指针
1.指针的概念:指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"(地址就是内存的物理地址)。指针变量:存放变量地址的变量。使用指针的目的:要通过指针能够找到被指的变量,或者说要通过指针间接访问被指向的变量。2**.指针变量的...原创 2019-12-13 11:46:13 · 733 阅读 · 0 评论 -
C语言基础学习笔记——函数
1.函数的基本概念:把一些大的或者功能相同的程序分成一个个程序块;函数是构成程序的基本单元。使用函数的好处:函数的使用可以省去重复代码的编写;函数可以使程序更加模块化,提高程序的可读性。2.函数的分类:①根据函数的定义方式可以分为:库函数、用户自定义函数②根据是否有参数可以分为:有参函数、无参函数③根据是否有返回值可以分为:有返回值函数、无返回值函数3.函数的说明:①函数不能嵌套定义...原创 2019-12-12 10:36:23 · 344 阅读 · 0 评论 -
C语言基础学习笔记——字符串及字符串操作函数
字符串的定义:字符串是位于双引号中的字符序列,在内存中以’\0’结束,所占字节比实际多一个。例如:字符串"Hello"在内存中的存储方式为: Hello \0 //以‘0’作为字符串结束的标志注意:可以把一个字符常量赋值给一个字符变量,但不能把一个字符串常量赋值给字符变量。如:char ch = ‘A’;(正确) 但是char ch = “A”;(错误)。C语言中没有字符串变量...原创 2019-12-11 12:40:12 · 689 阅读 · 0 评论 -
C语言基础学习笔记——几种常见的基本类型的格式符(格式说明)
%d:十进制有符号整数%u:十进制无符号整数%f:浮点数(单精度)float%lf:浮点数(双精度)double%.5lf:显示保留小数点后5位%s:字符串%c:单个字符%p:指针的值(地址)%e:指数形式的浮点数%x:以十六进制表示的整数(0x开头的数表示为十六进制,如0x234)%0:以八进制表示的整数(以0开头的数字序列为八进制,如0123)%%:输出%...原创 2019-12-11 10:35:32 · 1188 阅读 · 0 评论 -
C语言基础学习笔记——二维数组
二维数组:数组的数组,二维数组中的每个元素是类型相同的一维数组。二维数组的定义:类型说明符 数组名[常量表达式1][常量表达式2] ;如:int a[2][3]; 定义了一个有2个元素的二维数组,数组中的每个元素又是一个包含3个整型类型的一维数组(先行后列,即两行三列)。二维数组的初始化:①分行给二维数组赋值:int a[3][4] = { {1, 2, 3, 4}, {5, 6, ...原创 2019-12-11 10:22:00 · 1127 阅读 · 1 评论 -
C语言基础学习笔记——一维数组
1.概念:在程序设计中,为了方便处理,所以把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类型数据元素的集合称为数组。2.定义一维数组:类型说明符 数组名[常量表达式];①类型说明符说明数组的类型,可以是任意基本数据类型或构造数据类型;②数组的类型实际上是指数组元素的取值类型,对于同一个数组,其所有元素的数据类型都是相同的;③数组名是用户定义的数组标识符;④命名要符合标识...原创 2019-12-10 17:55:26 · 1281 阅读 · 0 评论 -
C语言基础学习笔记——循环语句(while / do-while / for)
循环语句:在给定的判断条件成立时,反复执行某个程序段。循环语句形式分为:1.while循环 2.do-while循环 3.for循环1.while语句:一般形式为:while(表达式){ 循环语句;}特点:先判断表达式,再执行循环体。2.do-while语句:一般形式为:do{ 循环语句;}while( 表达式);//后面一定要...原创 2019-12-10 10:44:04 · 1122 阅读 · 0 评论 -
C语言基础学习笔记——类型转换
类型转换分类:若参与运算的量类型不同,则先转成同一类型再进行计算,分为隐式转换和显示转换。①隐式转换:由编译器完成。 C语言规定转换规则是由低级向高级转换。 注:赋值运算时,如两边类型不同,将自动转换为和左边相同的类型。②显示转换:又叫强制类型转换。直接在要转换的数据前面用小括号加需要转换成的类型。一般形式为:(类型名)表达式;如: a = ( int )7.6; //表示把7.6强...原创 2019-12-08 11:30:37 · 308 阅读 · 0 评论 -
C语言基础学习笔记——分支语句(if/if else/else if/switch)
语句:一条完整的计算机指令。语句与表达式的区别:语句在结束处有分号。(如:a = 1 + 2是表达式。a = 1+ 2;是表达式语句)语句的分类: ①表达式语句:在表达式后面加分号。 ②函数调用语句:函数名(实际参数列表);(如scanf( ); printf( )) ③空语句:只有一个分号,在程序中尽量避免使用。 ④复合语句:花括号中的一条或多条语句。如 ...原创 2019-12-08 11:03:57 · 721 阅读 · 0 评论 -
C语言基础学习笔记——运算符和表达式
表达式:由运算符、操作数和标点符号组成的序列。 注:①可以是一个单独的变量或常量; ②表达式是有值的(运算结果:数学值、逻辑值); ③可以为表达式添加括号,称为表达式的嵌套使用,但只能是小括号()。运算符的分类:①赋值运算符:程序中为变量赋值,需用到赋值运算符“=”。用=连接的式子,称为赋值表达式,一般形式为:变量=表达式(如:a = 3)。②算数运算符:包括...原创 2019-12-07 21:00:35 · 848 阅读 · 0 评论 -
C语言基础学习笔记——常量和变量
常量:在程序执行中,取值不可变的量称为常量。整型常量:分为八进制、十进制、十六进制常量。八进制以整数0开头,用0—7表示;十六进制以0x开头,用0—9和ABCDEF表示(A表示10,B表示11…)。实型常量:可以用十进制和指数形式表示。字符型常量:使用单引号表示(如’a’)。字符串常量:用双引号括起来表示的字符序列(“hello”)。编译器遇到 \0 结束字符串读取,所以在字符串最后会自动...原创 2019-12-06 15:36:26 · 450 阅读 · 0 评论 -
C语言基础学习笔记——基本数据类型
基础中的基础必须要知道的一些知识:#include 系统库文件stdio.h 系统库文件< > 直接搜索系统标准库" " 先搜索用户自定义的库(工作路径),在搜索系统库main ( ) 主函数,作为程序的唯一入口,有且只有一个...原创 2019-12-06 12:49:31 · 336 阅读 · 0 评论