随笔分类 -  C语言

摘要:转载地址:https://wawlian.iteye.com/blog/1315133 小程序一: 十进制数字的字符串表示转换成对应的整数。例如:将“1234”转换成整数1234。 小程序二: 十六进制数的字符串转换成对应的整数。所谓的十六进制数的字符串形式是指字符串只包含'0'-'9'或者'a'- 阅读全文
posted @ 2019-07-28 17:25 雪地飞行棋 阅读(16868) 评论(0) 推荐(0)
摘要:SQLite3 C语言API :http://www.runoob.com/sqlite/sqlite-c-cpp.html SQLite 命令:http://www.runoob.com/sqlite/sqlite-commands.html 注:使用SQLite 命令前提是Linux环境安装了S 阅读全文
posted @ 2019-04-11 11:28 雪地飞行棋 阅读(211) 评论(0) 推荐(0)
摘要:1 //定义如下结构体 2 typedef struct student 3 { 4 int id; 5 char* name; 6 } student_t; 7 8 int main(){ 9 10 //有四种定义形式 11 12 //一、结构体变量 13 student_t xiaoming; //不需要为结构体分配内存,但是需... 阅读全文
posted @ 2019-03-22 17:38 雪地飞行棋 阅读(2002) 评论(0) 推荐(0)
摘要:题目:求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数10的最小值。 啥叫回文数:如果把某个十进制数按相反的顺序排列,得到的数和原来的数相同,则这个数就是”回文数“。例如12321就是一个回文数。 这个题目拿Ruby、JavaScript、python、Java都很容易实现,因为这 阅读全文
posted @ 2019-01-05 17:54 雪地飞行棋 阅读(222) 评论(0) 推荐(0)
摘要:首先说明一下:这两个函数不建议使用,原因是返回内存地址把释放权交给别的变量,容易忘记释放。 一、strdup函数 函数原型 头文件:#include <string.h> char *strdup(const char *s); 功能:将字符串拷贝到新建的位置处 返回值 :返回一个指向新字符串的指针 阅读全文
posted @ 2018-12-29 14:13 雪地飞行棋 阅读(7227) 评论(0) 推荐(1)
摘要:总结常见的单链表操作函数,复习使用,仅供参考,代码调试通过。 阅读全文
posted @ 2018-10-22 21:55 雪地飞行棋 阅读(1548) 评论(0) 推荐(0)
摘要:strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。 strcpy和memcp 阅读全文
posted @ 2018-10-17 18:56 雪地飞行棋 阅读(157) 评论(0) 推荐(0)
摘要:不使用库函数,实现strcpy函数: 不使用库函数,实现strcat函数: 阅读全文
posted @ 2018-10-17 18:41 雪地飞行棋 阅读(294) 评论(0) 推荐(0)
摘要:实现memcopy函数: https://blog.csdn.net/goodwillyang/article/details/45559925 https://blog.csdn.net/souprock/article/details/78179324 阅读全文
posted @ 2018-10-16 12:40 雪地飞行棋 阅读(626) 评论(0) 推荐(0)
摘要:volatile的本意是“易变的” 因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。 精确地说就是,遇到这个关键字声明的变量,编译器 阅读全文
posted @ 2018-10-16 12:27 雪地飞行棋 阅读(8363) 评论(0) 推荐(0)
摘要:sizeof()操作符检测的是系统为后面()中的类型、变量等分配的内存空间的字节数,这里()中是int,就是求系统为int类型的变量分配几个字节。 在16位int平台下是2;在32位int平台下是4;在64位int平台下是8。 与strlen区别 与strlen区别 strlen(char*)函数求 阅读全文
posted @ 2018-10-10 19:50 雪地飞行棋 阅读(2629) 评论(0) 推荐(0)
摘要:“挖坑填数+分治法” 运行结果: 阅读全文
posted @ 2018-10-09 22:16 雪地飞行棋 阅读(164) 评论(0) 推荐(0)
摘要:一、malloc 函数原型:void *malloc(unsigned int size); 功 能:在内存的动态存储区中分配一个长度为size的连续空间。 返 回 值:指向所分配的连续存储域的起始地址的指针,若失败,返回NULL 二、free 函数原型:void free(void *p); 功 阅读全文
posted @ 2018-09-27 23:01 雪地飞行棋 阅读(149) 评论(0) 推荐(0)
摘要:结构体是C语言中重要的概念,理解结构体并且能够熟练使用结构体能够提高开发效率,优化代码。 结构体的概念可以自己百度或者看课本,这里分析一下结构体的赋值问题。 结构体赋值有三种: 1.定义时赋值 2.定义后对成员变量挨个赋值 3.结构体作为参数时赋值 阅读全文
posted @ 2018-08-26 20:13 雪地飞行棋 阅读(4099) 评论(0) 推荐(0)
摘要:为什么要用malloc函数申请内存空间? 有的程序往往在运行时才知道要动态分配多大的内存,例如: n是由参数传进来的,事先不知道是多少,那么buf该定义多大呢?如果我们希望动态分配一块全局的内存空间,在各函数中都可以访问呢?由于全局数组无法定义成VLA,所以任然不不能满足要求,进程有一个堆空间,C标 阅读全文
posted @ 2018-07-24 23:53 雪地飞行棋 阅读(511) 评论(0) 推荐(0)
摘要:疑问:结构体长度用sizeof求出来的值,为什么不是结构体内部成员变量长度的总和? 产生这种情况的原因更C语言内存分配规则有一些联系,成员变量的偏移量需要是最大成员变量的整数倍,char类型如果没有定义长度,偏移量是1,如果定义了长度,也需要满足偏移条件,例如char str[101]; 如果有in 阅读全文
posted @ 2018-07-22 22:51 雪地飞行棋 阅读(257) 评论(0) 推荐(0)
摘要:使用 gcc -g test.c -o test.out 编译程序,只有加-g参数才支持gdb调试; 然后 gdb ./test.out 运行可执行文件,进入gdb调试模式(gdb),在括号后面的输入命令; (gdb)help:查看命令帮助 (gdb)start:单行执行 (gdb)l:查看源程序 阅读全文
posted @ 2018-07-08 14:07 雪地飞行棋 阅读(3024) 评论(0) 推荐(0)
摘要:代码研习 阅读全文
posted @ 2018-06-18 23:01 雪地飞行棋 阅读(5053) 评论(1) 推荐(0)
摘要:1、sprintf()函数 送格式化输出到字符串中,返回实际输出到字符串中的个数。 例如: char buffer[80]; sprint(buffer,"1234567890"); 2、snprint()函数 功能类似于sprintf,但是他可以控制写入字符串的长度,可以避免超长。 例如: cha 阅读全文
posted @ 2018-05-07 19:45 雪地飞行棋 阅读(364) 评论(0) 推荐(0)
摘要:1、获取当前时间,并获取当前时间(即系统时间)距离1970年1月1日的时间间隔,以秒为单位。 2、获取指定时间距离1970年1月1日的时间间隔,以秒为单位。 阅读全文
posted @ 2018-04-15 14:35 雪地飞行棋 阅读(583) 评论(0) 推荐(0)