C进阶
文章平均质量分 84
温故而知新!
worthsen
Just do it!
展开
-
C语言概述
C语言概述1、前期准备1.1 计算机体系结构1.2 C历史发展、资料1.3 C二进制与字符集1.4 编辑器1.5 编译器1.6 编码规范2、语法2.1 基本元素2.2 数据类型2.3 运算符2.4 变量的存储方式、作用域和生命周期2.5 数组2.6 函数2.7 指针2.8 main函数以及入口参数2.9 C代码对应的存储2.10 结构体的定义和使用2.11 值传递、指针传递和引用传递(C++)2...原创 2019-01-21 22:00:42 · 606 阅读 · 0 评论 -
C--中文汉字占用字节长度(字符集和字符编码)
中文汉字占用字节长度一、字符集和字符编码1、概念2、英文字母和中文汉字在不同字符集编码下的字节数二、环境对应的字符编码1、Ubuntu16.04虚拟机2、Notepad++三、sizeof运算汉字占用字节长度参考一、字符集和字符编码1、概念字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符编码(...原创 2019-01-21 21:59:17 · 15994 阅读 · 2 评论 -
C语言练手项目--C 语言编写聊天室
C 语言编写聊天室一、需求二、知识点1、TCP/IP协议2、文件操作3、数据库三、实现1、思路2、代码3、运行结果四、参考一、需求基于TCP编写,一个聊天室最多100人。客户端:1、用户需要登录,登录时只需要输入一个昵称即可无需判断昵称是否重复(如果其他功能都ok考虑)2、用户登录后连接服务器端,进入聊天室3、用户可以输入聊天信息,也可以收到别人的聊天信息。4、用户可以用某个...原创 2018-12-12 21:14:04 · 11976 阅读 · 1 评论 -
C语言练手项目--C 语言编写万年历
C语言编写万年历一、需求二、实现1、思路2、代码3、运行结果三、参考链接一、需求二、实现1、思路(1)日历规则四年一闰,百年不闰,四百年再润1、 如果年份是4的倍数,且不是100的倍数,则是闰年;2、 如果年份是400的倍数,则是闰年;3、 不满足1、2条件的就是平常年。总结成一句话就是:四年一闰,百年不闰,四百年再闰。2、代码3、运行结果三、参考链接1、万年历——...原创 2018-12-10 13:52:16 · 1879 阅读 · 2 评论 -
C语言练手项目--C 语言制作简单计算器
C 语言制作简单计算器一、需求二、实现1、代码2、运行结果三、参考链接一、需求使用 C 语言做一个简单的计算器,能执行加、减、乘、除操作二、实现1、代码/* * Author: sen * Date: 2018-12-04 */#include <stdio.h>#include <stdlib.h>#include &amp原创 2018-12-04 22:27:40 · 5090 阅读 · 4 评论 -
C--static详解
一、介绍1、static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。static 是全局变量的默认存储类二、代码验证1、static...原创 2018-08-08 23:40:06 · 454 阅读 · 0 评论 -
C--函数参数的入栈顺序
一、问题1、代码//#include <stdio.h>int main(){ int b = 3; int arr[] = {6, 7, 8, 9, 10}; int *ptr = arr; *(ptr++) += 123; printf("%d, %d\n", *ptr, *(++ptr));}//2、runoob上运行3、ubuntu ...原创 2018-06-14 20:35:14 · 1349 阅读 · 0 评论 -
C--for循环语句头的执行顺序
一、介绍1、for语句是C语言中最基本的语句之一。2、for循环可以说在每个程序中都少不了的,语句头包括三个部分:初始化,判读条件,一个表达式。3、一般形式for(初始化语句; 条件语句; 控制语句){ 中间循环体;}4、执行顺序初始化语句-->条件语句-->中间循环体-->控制语句-->条件语句-->中间循环体--&g...原创 2018-06-14 19:29:45 · 709 阅读 · 0 评论 -
C--静态库与动态库
一、介绍1、静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。2、动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于...原创 2018-06-07 14:48:40 · 2377 阅读 · 0 评论 -
C--函数指针和指针函数
一、函数指针1、介绍在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为“函数指针变量”。函数名是指向函数的指针,调用函数时,就是在使用函数指针。2、定义类型说明符 (*指针变量名)();这...原创 2018-06-07 10:38:32 · 460 阅读 · 0 评论 -
C--值传递、指针传递和引用传递(C++)
一、基本介绍1、值传递:形参是实参的副本(复制、拷贝),形参值的改变不会影响实参的值,这种方式用的最多。2、指针传递:形参是指针类型,形参作指针运算后指向的就是实参,所以会影响实参的值,这种方式用的也很多。3、引用传递(C++):在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。这种方式用的也蛮多的。(引用只是一个别名) 二、代码示...原创 2018-06-05 10:08:51 · 577 阅读 · 2 评论 -
C--结构体的定义和使用
一、机构体的定义1、结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。 二、定义一个结构的一般形式//struct 结构名{ 成员表列};////struct stu{ int num; char name[20]; char sex; float score;};// 三、...原创 2018-03-01 13:22:47 · 2677 阅读 · 0 评论 -
C--C标准库-string
一、介绍string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。 致谢1、C标准库-<string.h> 简介string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。库变量下面是头文件 string.h 中定义的变量类型:序号 变量 & 描述 1 size_t 这是无符号...转载 2018-06-03 22:39:03 · 575 阅读 · 0 评论 -
C--C代码对应的存储
一、介绍C代码中变量、代码段等都有对应存储的分段,理解清楚它们之间的关系,有助于理解一些bug。 二、存储器图 三、详解1、堆存储小结(1)可以用malloc()函数在堆上申请空间。该函数返回的是一个指针。(2)堆的空间是有限的,要合理使用。(3)使用栈时,不需要关心存储器,栈的使用过程时自动管理的。离开函数后,局部变量就会自动从栈中清除。(4)堆和栈不...原创 2018-06-03 20:29:05 · 485 阅读 · 0 评论 -
C--一些有趣代码
一、介绍1、C语言的语法能造就一些有趣的代码,下面便是一些有趣代码的示例。 二、有趣代码锦集1、数组变量的有趣使用(1)代码//#include <stdio.h>int main(){ int num[] = {1,2,3,4} printf("the 3[num] result is : %d\n", 3[num]); return 0;}...原创 2018-06-03 09:56:18 · 23333 阅读 · 3 评论 -
C--代码规范
一、文件开头注释///************************************************************************* > File Name: test.c > Description: > Author: Sen > Date: 2018-5-21 ...原创 2018-05-21 12:49:21 · 453 阅读 · 0 评论 -
C--快速排序
0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念...转载 2018-05-08 09:00:54 · 386 阅读 · 0 评论 -
C--main函数以及入口参数详解
一、main函数的基本介绍1、main函数是工程的入口主函数。 二、main函数的示例1、示例一//#include <stdio.h>int main(){ …… return 0;}//2、示例二怕(谭浩强《C语言程序设计》[第四版]10.7.3)//#include <stdio.h>int main(argc, ...原创 2018-05-08 08:53:14 · 8696 阅读 · 1 评论 -
C--指针
一、指针的理解注:(1)指针变量使用之前必须赋值,未赋值的指针变量不能使用,否则将造成系统还乱,甚至死机。(2)指针变量只能赋予地址。举例:int a = 1;int *p = &a; (int 类型说明符,说明指针变量值是int型变量的地址,同时也是地址操作中步长的依据) 二、数组与指针1、要点(1)数组变量可以用作指针,但是数组变量和指针又不完全一...原创 2018-04-23 17:01:55 · 426 阅读 · 0 评论 -
C--C语言的函数
一、函数的声明与定义1、函数的声明(1)函数声明的一般形式返回类型 函数名 (形参列表)(2)举例//void swap(int a, int b);//函数的形参列表中每个形参的标识符可省//void swap(int, int);//2、函数的定义(1)一般形式为//存储类说明符(可缺省) 返回类型 函数名 (形参列表) 复合语句//...原创 2018-04-23 09:07:31 · 489 阅读 · 0 评论 -
C--数组
一、一维数组1、一维数组的定义方式//类型说明符 数组名 [常量表达式];//2、举例//int a[10]; 说明整型数组 a,有 10 个元素。float b[10],c[20]; 说明实型数组 b,有 10 个元素,实型数组 c,有 20 个元素。//3、数组元素的一般形式为://数组名[下标]//例如 a[i]4、初始化赋值的一般形式/...原创 2018-04-23 09:05:46 · 424 阅读 · 0 评论 -
C--变量的存储方式、作用域和生命周期
一、作用域1、作用域问题:在一个函数中定义的变量,在其他函数中能否被引用?在不同位置定义的变量,在什么范围内有效?2、定义变量可能有3种情况 [谭浩强](1)在函数的开头定义;(2)在函数内的复合语句内定义;(3)在函数的外部定义。3、局部变量(1)在函数内部定义的变量,只有在本函数内才能引用它们,也只有在本函数范围内有效;(2)在复合语句内定义的变量,只有在本复合...原创 2018-04-22 08:10:41 · 4859 阅读 · 0 评论 -
C--运算符
一、算数运算符 二、关系运算符 三、逻辑运算符 四、位运算符假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:A = 0011 1100B = 0000 1101 五、赋值运算符 六、杂项运算符(↦ sizeof & 三元) 七、C中运算符优先级 致谢1、C运算...原创 2018-03-25 20:39:10 · 417 阅读 · 1 评论 -
C--数据类型
一、数据类型分类1、谭浩强的第四版《C语言程序设计》将C语言中的数据类型分为:基本数据类型,构造数据类型,指针类型,空类型四大类。2、谭浩强老师的数据类型分类图3、四大类型的主要特点 {来自《C语言程序设计》[第四版],作者谭浩强} 基本数据类型 构造数据类型 指针类型 空类型 特点 其值不可以再分解为其它类型 ...原创 2018-03-25 20:39:28 · 555 阅读 · 0 评论 -
C--C语言中的基本元素
一、C语言中的字符集1、⼀般来说,编程语⾔的字符集都可分为两组:⼀组叫源字符集,另⼀组叫执⾏字符集。所谓“源字符集”是指在写C源代码时⽤的字符集,也就是呈现在C源⽂件中的字符集。⽽“执⾏字符集”是指编译构建完源⽂件后的⽬标⼆进制⽂件中所表⽰的字符集,它将⽤于运⾏在当前的执⾏环境中。⽐如,我们在控制台或者GUI窗⼜视图上所看到的⽂字信息就属于执⾏字符集。 二、C语⾔中的token1、...原创 2018-03-24 16:03:33 · 3835 阅读 · 0 评论 -
C--基础知识
一、整数在计算机中的表示1、现在⼏乎所有计算机都采⽤⼆进制数(Binary)编码⽅式,所以我们⽇常所⽤到的整数如果要⽤计算机来表⽰的话,需要表⽰成⼆进制的⽅式。2、在计算机术语中,把⼆进制数中的某⼀位数又称为⼀个⽐特(bit)。⽐特这个单位对于计算机⽽⾔,在度量上是最⼩的单位。除了⽐特之外,还有字节(byte)这个术语。⼀个字节由8个⽐特构成。在某些单⽚机架构下还引⼊了半字节(nybble...原创 2018-03-24 16:05:00 · 980 阅读 · 0 评论 -
C--资料汇总
一、书籍1、《C语言程序设计》[第四版],作者谭浩强2、《C程序设计语言》[第二版],作者 Brian W.Kernighan, Dennis M.Ritchie 3、《C语言编程魔法书》作者 陈轶4、《嗨翻C语言》David Griffiths / Dawn Griffiths 5、《C语言程序设计》 作者 K.N.King 6、《C程序设计语言》 [第二版] 作...原创 2018-03-20 16:21:10 · 446 阅读 · 0 评论 -
C--C语言概述
一、C语言的发展过程1、C语言的产生C程序设计语言最早是由Dennis M.Ritchie于1969年到1973年在AT&T贝尔实验室⾥开发出来,主要⽤于重新实现Unix操作系统。此时,C语⾔又被称为K&R C。其中,K表⽰Kernighan的⾸字母,⽽R则是Ritchie的⾸字母。K&R C语⾔与后来标准化的C语⾔有很⼤差异。当时的第⼀本由 B.W.Kernigh...原创 2018-03-24 13:04:19 · 3189 阅读 · 2 评论 -
C--计算机体系结构简介
一、计算机体系结构简图1、⼀个简单的计算机系统包含了中央处理器(CPU)以及存储器和其他外部设备。⽽在CPU内部则由计算单元、通⽤⽬的寄存器、程序序列器、数据地址⽣成器等部件构成。简图如下: 二、贮存器1、贮存器(Storage)尽管在图中没有表⽰出来,但我们对它⼀定不会陌⽣,⽐如我们在PC上使⽤的硬盘(Hard Disk)就是⼀种贮存器。贮存器是⼀种存储器,不过它可⽤于持久保...原创 2018-03-24 14:37:39 · 1552 阅读 · 0 评论