C
Adam Xi
这个作者很懒,什么都没留下…
展开
-
malloc底层实现
Linux维护一个break指针,这个指针指向堆空间某个位置。从堆起始地址到break之间的地址空间为映射好的,可以供进程访问而从break往上,是未映射的地址空间,如果访问这段空间则程序会报错。我们使用malloc进行内存分配就是从break往上进行的而rlimit则是限制进程堆内存容量的指针,即可分配堆空间的“极限指针”获取了break地址,也就是内存申请的初始地址Linux通过brk...原创 2020-02-26 16:10:10 · 158 阅读 · 0 评论 -
浅析C/C++中static
static原创 2020-02-26 16:05:26 · 113 阅读 · 0 评论 -
C文件操作
c文件操作原创 2019-11-04 21:33:55 · 1563 阅读 · 0 评论 -
最大公约数
引子求两数的最大公约数-----简单吗?-----简单!-----用多种方法求,可以吗?-----emmmmm....应该可以吧?!!!正文方法一:相信绝大多数人都知道求最大公约数的如下代码所示的这种方法#include<stdio.h>#include<Windows.h>int CommonDivisor(int x,int ...原创 2019-04-27 03:15:24 · 1984 阅读 · 0 评论 -
交换两个量的值(多种方法)
每一段不曾闻鸡起舞的日子,都是对生命的辜负引子:之前在做题时碰到一个简单的题,竟然难住我了!!!what???题目如下:交换两个整形变量的值ok,乍眼一看,so 简单:#include<stdio.h>#include<Windows.h>int main(){ int A = 101, B = 202; int temp; printf("bef...原创 2019-04-23 16:56:25 · 1872 阅读 · 0 评论 -
求素数,算法简化
引子谈起求素数的问题,可能许多人嗤之以鼻,认为是编程学习最简单最基础的一部分,可是,真的是这样吗?试问:当一个数足够大,或者对该算法的时间有严格的限制时,还是如此简单吗?正文乍眼一看,第一反应应该是这样的:#include<stdio.h>#include<Windows.h>#include<time.h>int IsPrime(int n...原创 2019-04-27 02:01:46 · 1634 阅读 · 0 评论 -
strlen()递归、非递归C实现
看题之前,先来简单了解一下strlen(char *)函数头文件#include<stdlib.h>它所做的仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间部分,或者不确定的某段内存区域)开始扫描,直到遇到第一个字符串结束符 ‘\0’ 结束,返回计数器值(不包含 ‘\0’ )#include<stdio.h>#include<Windows....原创 2019-05-18 01:30:35 · 514 阅读 · 0 评论 -
算法训练:黑色星期五
题目描述:13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400.这里有一些你要知道的:1、1900年1月1日是星期一.2、4,6,11和9月有30天.其他月份除了2月都有31天.闰年2...原创 2019-07-17 22:26:39 · 1043 阅读 · 0 评论 -
杨氏数组(矩阵)查找
题目描述:有一个二维数组(矩阵),每一行元素从左往右依次增大,每一列元素从上往下依次增大,即表示为Table[i][j]<Table[i][j+1] && Table[i][j]<Table[i+1][j], 则这样的矩阵我们称之为杨氏矩阵。求一元素是否存在于杨氏矩阵中。如图所示,想要在上图所示的矩阵中查询一个数是否存在,最简单,或者直观的做法当然是双重for循...原创 2019-06-13 14:54:17 · 1677 阅读 · 0 评论 -
数据在内存中的存储
数据类型C基本的内置类型:char //字符型数据类型(1)short //短整型 (2)int //整型 (4)long //长整型 (4)long long //更长的整型 (8)float //单精度浮点数 (4)double //双精度浮点数 (8)后面的括号中的数值表示该类型定义出来的变量在存储空间中所占的字节数(32位windows平台下)类型的意义...原创 2019-07-15 01:17:44 · 1721 阅读 · 0 评论 -
模拟实现qsort
qsort函数C语言编译器函数库自带的一个接口,作用是用快速排序的方式进行排序qsort 的函数原型是:void qsort (void* base, size_t num, size_t size, int ( *compar)(const void*, const void* ) );参数解释:base ---- 指向要排序的数组的第一个元素的指针, 并转换为void* 类型n...原创 2019-07-02 23:27:06 · 1045 阅读 · 0 评论 -
字符串函数及其模拟实现(二)
strlen()函数介绍size_t strlen(const char * str);1、字符串以’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)2、参数指向的字符串必须要以’\0’结束3、注意函数的返回值为size_t,是无符号的模拟实现#include<stdio.h>#include<windows....原创 2019-07-15 22:11:04 · 518 阅读 · 0 评论 -
字符串函数及其模拟实现(一)
strncpy()函数原型char * strncpy( char * destination, const char * source, size_t num);从字符串复制字符将源的前num个字符复制到目标。如果在复制num个字符之前找到源 C字符串的结尾(由空字符表示),则使用零填充目标,直到已向其写入总共num个字符。如果source长于num,则不会 在目标末尾隐式附加空字符...原创 2019-07-15 14:21:38 · 1097 阅读 · 0 评论 -
C指针(进阶)
之前,简单的介绍过指针的基础知识,不外乎就是以下几点:1、指针变量是个变量,用来存放地址,地址唯一标识一块内存空间,作用就是快速定位2、指针的大小是固定的4 / 8个字节(32位平台 / 64位平台)3、指针是有类型的,指针的类型决定了指针 ± 整数的步长时,指针解引用操作的权限4、指针运算详情跳转C指针(基础)下面,我们讨论一下指针较为深层次的拓展:字符指针:char*#incl...原创 2019-06-21 22:42:12 · 1688 阅读 · 0 评论 -
C指针(基础)
指针的定义:在科学计算中,指针(Pointer)是编程语言的一个对象,利用地址,它的值直接指向(points to)存在电脑 存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的成为“指针”。意思是通过它能找到以它为地址的内存单元。简言之,指针就是变量,是用来存放地址的变量,存放在指针中的值都被当做地址来处理地址是唯一标识一块地址空间...原创 2019-06-13 17:42:21 · 2280 阅读 · 0 评论 -
C总结
原创 2019-09-21 23:46:34 · 1432 阅读 · 1 评论