C99中新增加了restrict修饰的指针:由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法,仅当第二个指针基于第一个时,才能对对象进行存取。对对象的存取都限定于基于由restrict修饰的指针表达式中。 由restrict修饰的指针主要用于函数形参,或指向由malloc()分配的内存空间。restrict数据类型不改变程序的语义。编译器能通过作出restrict修
#include<stdio.h> void defStrCat(char destination[], char source[]); void defStrCat(char destination[], char source[]) { int i = 0; while (destination[i] != '\0') { i++; }
原创 2023-02-27 18:02:47
198阅读
#include <stdio.h> #include <stdlib.h> int binsearch(int x, int arr[], int left, int right) { while (left <= right) { in
原创 2015-10-31 17:05:49
957阅读
在上面的示例中,我们使用了指针和数组的组合来实现内存管理。需要注意的是,这只是一个简单的示例,实际的内存管理需要考虑更复杂的情况,例如内存泄漏和内存碎片等。然而,如果不使用这些函数,我们可以使用C语言的指针操作来实现简单的内存管理。函数来分配内存,并检查返回值是否为空,如果不为空,打印出分配的内存块的大小和已
一、快速排序  一般而言,学习C语言较为简单的排序,则是直接插入排序和冒泡排序。而这两者在数据较大的时候则速度就很慢了。快速排序的速度大于前者并且较为简单,所以写下学习快速排序的过程,供以后复习。  快速排序的原理:    1、快速排序是分治思想,将数列分解排序。    2、具体过程是:先任取一个值作为基准,然后将小于该基准值的数放在该数的左侧,大于该数的数放在右侧。    3、然后就是重复地将左
转载 2023-08-08 11:18:15
67阅读
C语言——程序实现过程一段代码要实现,会经过编译,汇编,链接,变成可执行程序,由我们用户使用。程序的执行过程中有两个环境存在,一个是翻译程序环境,一个是执行代码环境,两个环境的不同就在于,先将代码翻译成我们的二进制文件供计算机阅读,然后计算机根据翻译的内容,执行相应的操作。程序的编译程序的编译分为几个阶段,总结一下,就是将C代码转换成汇编代码,然后会进行代码的分析,就像语法分析,词法分析,语义分析
#include <stdio.h> #include <assert.h> char *strcpy(char *strDest, const char *strScr) { char *address = strDest; assert((strDest != NULL) && (strScr
转载 2017-05-26 10:40:00
133阅读
2评论
首先看atoi函数C语言函数名: atoi功 能: 把字符串转换成整型数。名字来源:ASCII to integer 的缩写。原型: int atoi(const char *nptr);函数说明: 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字...
转载 2013-08-04 00:04:00
229阅读
2评论
文章目录一、面向对象的三个基本特征1.1 封装1.2 继承1.3 多态二、C语言实现封装2.1 成员变量定义和访问控制2.2 对象的创建和删除2.3 成员函数的访问控制三、C语言实现继承3.1 子类继承父类成员变量3.2 子类使用父类成员函数四、C语言实现多态4.1 基类中增加虚表指针4.2 虚表的构建和初始化4.3 利用虚表实现多态4.4 代码仓库 一、面向对象的三个基本特征1.1 封装封装就
转载 2023-08-30 11:20:14
91阅读
/* * main.c * 队列 *  Created on: Oct 29, 2010 *      Author: jenson */#include <stdlib.h>#include <stdio.h>#define MAX 10void init(int
原创 2010-10-29 22:22:36
1810阅读
1点赞
/* * main.c * 埃拉托色尼筛法 *  Created on: Nov 6, 2010 *      Author: jenson */#include <stdio.h>#define N 10000int main(){    int
原创 2010-11-06 13:59:09
3300阅读
1.字符串管理模块: 这个文件主要实现了能够自动扩展并灵活拼接的字符串类型,具体作用可以参考C++的string类型作用。 /*stringutils.h*/ #ifndef STRINGUTILS_H #define STRINGUTILS_H #include<stdlib.h> typedef
转载 2019-12-26 14:18:00
251阅读
学习记录
原创 2023-02-28 22:40:00
104阅读
学习记录
原创 2023-02-28 22:40:00
144阅读
尽管有许多的争议,但我还是觉得 C++ 中的 RAII 惯用法是个好东西,也是写 C 代码时唯一怀念的 C++ 特性。下面是一些 C 语言实现 RAII 的方法:gccGCC 上可以使用cleanup 扩展实现#define RAII_VARIABLE(vartype,varname,initval,dtor) \ void _dtor_ ## varname (vartyp...
转载 2021-10-25 16:38:11
242阅读
尽管有许多的争议,但我还是觉得 C++ 中的 RAII 惯用法是个好东西,也是写 C 代码时唯一怀念的 C++ 特性。下面是一些 C 语言实现 RAII 的方法:gccGCC 上可以使用cleanup 扩展实现#define RAII_VARIABLE(vartype,varname,initval,dtor) \ void _dtor_ ## varname (vartyp...
转载 2022-01-29 11:29:57
178阅读
扫雷 指针在递归中的转换 访问权限冲突的解决方案
原创 2023-05-25 13:03:59
156阅读
/* delete space in the string */ContentTrimLeft( char* pDest, const char* pSrc, int iSrcLen ){ int i=0; const char * t = pSrc; .
原创 5月前
47阅读
这个示例代码使用C语言中的系统调用和标准库函数实现timeconfig命令的功能。它接受一个时区参数作为命令行参数,并根据该参数进行相应的操作来修改系统的时区设置。
原创 4月前
70阅读
 目录一、冒泡排序二、平均滤波1.中位值平均滤波法2.递推平均滤波法3.算术平均滤波法一、冒泡排序1.定义它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来,直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。假设需要排列的数组为a[4]={7,23,6,8}用冒泡排序对这四个数排序,需要进行(4-1)轮比较,
  • 1
  • 2
  • 3
  • 4
  • 5