C语言笔记
一些基本C语言入门笔记
鳄鱼森林
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【笔记】C_内存分页机制
学习资料来自于http://c.biancheng.net/1.虚拟内存对应物理地址虚拟地址与物理地址一一对应。将地址以212=4K大小分页,即加入4GB的虚拟内存=220 *212 ,即220 页。2.一级页表把所有的页整合成为一个数组,即这个数组有220 个元素,每个元素对应物理地址的相应页地址,每个元素占4字节,即页表大小4MB。那么物理地址=物理页地址+偏移值。所以虚拟...原创 2020-04-22 23:44:07 · 282 阅读 · 0 评论 -
【笔记】C_文件操作知识点补充
1.利用fread与fwrite进行文件拷贝fread(缓存,单块大小,块数,文件指针)fwrite(缓存,单块大小,块数,文件指针)两个函数返回都是块数,如何进行文件拷贝:1)需要缓存区来暂存拷贝的数据。2)需要判断拷贝何时停止#include <stdio.h>#include <stdlib.h>#pragma warning(disable:499...原创 2020-04-15 16:47:48 · 242 阅读 · 0 评论 -
【笔记】C_文件操作
1.fopen与fcloseFILE *fopen(char *filename, char *mode);fopen的函数如上,第一个参数文件名(路径),第二个参数为打开方式。打开方式包括打开权限:r,w,a,r+,w+,a+六种,与读写方式t,b两种。r:读,若不存在该文件,fopen返回NULL。w:写,若不存在则新建,若存在删除新建。a:追加,若不存在则新建,若存在写入内容...原创 2020-04-08 19:03:00 · 275 阅读 · 0 评论 -
【笔记】C_函数指针与表达式复杂的指针理解
1.函数指针int (*vptr)(int,int) = max;格式是这样的,表示vptr这个指针指向 int max(int,int);的函数。int max(int a,int b){ return a>b? a:b;}int main(){ int (*pMax)(int,int) = max; int a = 3,b =6; int result = pMax...原创 2020-03-31 08:54:09 · 290 阅读 · 0 评论 -
【笔记】C_数组类型与指针类型的区别
1.数组类型与指针类型int a[6] = {1,2,3,4,5,6};int* p = a;int lenA = sizeof(a)/sizeof(int);int lenP = sizeof(p)/sizeof(int);printf("lenA=%d,lenP=%d.\n",lenA,lenP);lenA=6;lenP=1;因为两种类型是不同的,虽然在他们都是指向a数据的a[...原创 2020-03-30 12:57:31 · 368 阅读 · 0 评论 -
【笔记】C_指针的一些理解
1.什么是指针初学指针,我习惯把指针比作一个标识指向某个数据,但是在后两天的学习中,我发现这种对指针的理解方式严重阻碍我后面的学习。于是我把他理解成一个变量,数据类型为地址。int a = 100;int* p1 = &a;资料上习惯使用的格式是:int *p1 = &a;查找了一些资料,发现两种书写格式都是正确的。但我偏向前者。int* p1实际是定义了p1这...原创 2020-03-30 10:43:37 · 155 阅读 · 0 评论 -
【笔记】C_指针与字符数组
1.字符数组与字符常量字符数组:拥有读写功能char str[] = "hello";str[1] = 'p'; //str=hpllo*(str+1) = 'c'; //str = hcllo字符常量:只有读功能,不能进行写入char* str = "hello"; //资料是这么写的,但是在vs上并不合法,应该加conststr = "reviii"; //正确 *(str...原创 2020-03-27 00:47:57 · 133 阅读 · 0 评论 -
【笔记】C_中间递归(字符串转换)
1.字符串转换流程图2.代码实现#include <stdio.h>#include <string.h>#pragma warning(disable:4996)void reverse(char* str);int main(){ char str[]="hello"; reverse(str); puts(str); return 0;}...原创 2020-03-25 21:50:36 · 297 阅读 · 0 评论 -
【笔记】C_数组排序(归并排序)
1.归并排序归并排序也称合并排序,其算法思想是将待排序序列分为两部分,依次对分得的两个部分再次使用归并排序,之后再对其进行合并。仅从算法思想上了解归并排序会觉得很抽象,接下来就以对序列A[0], A[l]…, A[n-1]进行升序排列来进行讲解,在此采用自顶向下的实现方法,操作步骤如下。(1)将所要进行的排序序列分为左右两个部分,如果要进行排序的序列的起始元素下标为first,最后一个元素的...原创 2020-03-22 22:43:04 · 400 阅读 · 0 评论 -
【笔记】C_数组排序(选择排序和插入排序)
1.不稳定的排序-选择排序选择排序概念:将第0小的数移动到arr[0],将第1小的数移动到arr[1],一次类推通过循环完成排序。因为可能会移动相同数据的位置,称之为不稳定。代码理解:假设一个arr1[5]={4,2,1,3,5};,需要将最小的数值先移动到arr1[0]的位置。需要定义一个min值来保存取得的最小值,min_index记录min值所在的下标。第一轮比较:假设mi...原创 2020-03-20 17:21:52 · 447 阅读 · 0 评论 -
【笔记】C_数组排序(冒泡排序与快速排序)
C语言中文网学习笔记1.冒泡排序以从小到大排序为例,冒泡排序的整体思想是这样的:从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。第一轮结束后,继续第二轮。仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。经过第二轮的比较,就可以找...原创 2020-03-20 01:00:32 · 294 阅读 · 0 评论 -
【笔记】C_静态数组
1.C语言中的数组静态数组C语言中的数组不能改变长度,从出生起便固定了长度,数组数据在内存中是连续存放的。2.数组的插入与删除插入:因为数组是静态数组,所以插入相当于拷贝到新的数组中,将插入点的数据向后移动,插入数据。如果在arr[5]={1,2,3,4,5}的2与3位置插入一个数字,代码如下:#include <stdio.h>#pragma warning(disab...原创 2020-03-19 23:01:12 · 1134 阅读 · 0 评论 -
【笔记】C_字符串输入输出以及string.h的基本用法
1.字符串长度问题。字符串在内存中存储是以‘\0’结尾。假设代码如下:#include <stdio.h>pragma warning(disable:4996)int main(){ char str1[5]="hello";//hello为5个字符 ... return 0;}程序报错,E0144:"const char[6]"类型的值不能用于初始化char...原创 2020-03-19 13:24:47 · 408 阅读 · 0 评论 -
【笔记】C_scanf的一些高级用法以及非阻塞输入
1.scanf指定长度输入#include <stdio.h>int main(){ int a; float b; char str[30]; scanf("%2d",&a); scanf("%*[^\n]");scanf("%*c"); scanf("%6f",&b); scanf("%*[^\n]");scanf("%*c"); scanf(...原创 2020-03-19 00:11:59 · 2461 阅读 · 0 评论 -
【笔记】C_scanf缓存区机制
1.scanf缓存机制概念scanf缓存机制是利用行缓存,在无\n字符出现前,输入的数据内容存入缓存,直到遇到\n,才将缓存清空进行赋值等操作。2.实例1-连续输入#include <stdio.h>int main(){ int a,b,c; scanf("%d",&a);//划重点这里的%d,而不是a=%d。下面一样 scanf("%d",&b);...原创 2020-03-18 13:05:54 · 336 阅读 · 1 评论 -
【笔记】C_浮点数在内存中的存取机制
于“C语言中文网”学习,记录笔记。(从零学习)1.定点数与浮点数设32bit的内存。定点数:前16位存储整数,后16位存储小数部分,小数点位置固定,精度高,取值范围小。浮点数:用科学计数法来存入内存,小数点的浮动是抽象的,不是说在内存里面浮动。2.科学计数法小数分解:符号+进制+尾数+指数例如:16.12510进制:符号0+10进制+1.6125尾数+1指数->1.612...原创 2020-03-17 00:48:12 · 283 阅读 · 0 评论 -
【笔记】C_有符号数无符号数在内存中取值机制
1.内存中存取数据是采用补码形式存储。符号位:0正1负正数:原码=反码=补码负数:反码=原码基础上符号位不变取反 补码=反码基础上+1 例子:假设用short a = -3; 原码:1000 0000 0000 0011 反码:1111 1111 1111 1100 补码:1111 1111 1111 11012.以无符号数形式输...原创 2020-03-16 16:27:51 · 511 阅读 · 0 评论
分享