C
C语言学习笔记
Jesse Ou
这个作者很懒,什么都没留下…
展开
-
redis 0.091 源码分析之zmalloc模块
本文以redis官网能下载的最早版本(0.091)源码为基础,官网下载地址:https://download.redis.io/releases/redis-0.091.tar.gz redis中的zmalloc主要是对c标准库中的内存操作函数(malloc,free,realloc)进行封装,加入used_memory记录占用内存大小。 每个内存块头部加入一个size_t记录上层申请内存的大小(不包括头部size_t占用空间),使用size_t是为了更好的兼容性,满足不同系统记录内存大小,最后把申请到.原创 2021-08-23 17:53:36 · 102 阅读 · 0 评论 -
C语言sizeof学习笔记
sizeof是在编译时候计算的 所以对表达式或者函数进行sizeof,只是多结果类型进行sizeof,不会进行表达式计算或者函数运行。如下 int i=1; printf("%d\n",sizeof(i++)); printf("%d\n",i); // 结果: // 4 // 1 // 并不会改变i的实际大小 不能对void类型进行sizeof sizeof(void) 在不同编译器会有不同表现,gcc返回的是1,vc返回的是0,有些编译器甚至都不能通过。 函数内对数组参数名进行sizeof #inc原创 2021-08-10 12:06:04 · 65 阅读 · 0 评论 -
leetcode NO.13 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况原创 2021-08-02 11:41:19 · 68 阅读 · 0 评论 -
浙江大学翁恺《C语言程序设计进阶》第4周编程题
逆序输出(10分) 题目内容: 你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束。然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1。 输入格式: 一系列正整数,输入-1表示结束,-1不是输入的数据的一部分。 输出格式: 按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格。 输入样例: 1 2 3 4 -1 输出样例: 4 3 2 1 时间限制:500ms内存限制:32000kb 反向单链表解法 #incl原创 2021-06-30 15:20:05 · 537 阅读 · 0 评论 -
浙江大学翁恺《C语言程序设计进阶》第1周编程题
字符串比对(10分) 题目内容: 题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。 注意,第一个字符的位置是0。 注意,第一个字符串在第二个字符串中的位置可能不止一处。 注意,字符串中可能含有空格。 注意,两个字符串的长度一定大于0。 输入格式: 两个字符串,一行一个。 输出格式: 第一个字符串在第二个字符串中出现的位置,按照从原创 2021-06-26 16:08:07 · 480 阅读 · 2 评论 -
C语言指针学习笔记
指针连续定义 指针连续定义必须每个都要带上* 正确定义: int *i, *j; 相当于 int *i; int *j; 错误定义: ini *i, j; 相当于 int *i; int j; 数组和指针都可以使用下标运算符 因为数组也是指针 int a[] = {1,2,3}; int *aa = a; printf("a[0] = %d ; aa[0] = %d",a[0], aa[0]); // 输出结果a[0] 和 aa[0] 相等 /*使用下标实现的例子*/ int a[10]; int i原创 2021-06-17 17:40:58 · 104 阅读 · 0 评论