C语言学习
文章平均质量分 75
MrT_WANG
夫学需静也
展开
-
每日一c,对指针,数组,字符串常量之间的梳理(一)
时间:2017.5.31 21:24万丈高楼平地而起,学好IT,得把纯c基础打牢实了。最近,乘着还有空闲时间,从新梳理哈自己的纯C关系树。一边学习一边记录,蛮不错的指针与数组的相同与不同一.、作为函数参数时,在语句或者表达式中使用数组时,我们可以采用数组或者指针的任何一种形式,除此之外的其他情况,指针与数组不能互唤.规则总结:1.表达式中的数组名被编译器当作一个指向该原创 2017-05-31 21:23:41 · 637 阅读 · 0 评论 -
二.从零写单链表的算法之遍历节点&删除节点&逆序节点
接上节:一.从零写单链表的算法之尾部&头部插入节点 http://blog.csdn.net/wangweijundeqq/article/details/79188813一.单链表的算法之遍历节点E:\Linux\0.C_DEMO\1.18_danlianbiao41、什么是遍历(1)遍历就是把单链表中的各个节点挨个拿出来,就叫遍历。(2)遍历的要点...原创 2018-02-04 19:09:13 · 2450 阅读 · 0 评论 -
一.从零写单链表的算法之尾部&头部插入节点
一.链表的引入1.链表是怎么来的?在了解链表的来路之前,需要知道数组的缺陷,数组主要有两个缺陷:①数组中所有元素类型必须相同②数组在定义时必须明确指定数组元素的个数,且个数一般来说是不可改的。==如果希望数组的大小能够实时扩展。怎么解决那?==譬如我刚开始定了一个元素个数是10,后来程序运行时觉得不够因此动态扩展为20.普通的数组显然不行,我们可以对数组进行封装以达到这原创 2018-01-28 19:36:31 · 18192 阅读 · 3 评论 -
静态链接库和动态链接库的制作及简单使用
一.自己制作静态链接库并使用使用到的材料: 1.第一步:自己制作静态链接库首先使用gcc -c只编译不连接,生成.o文件;然后使用ar工具进行打包成.a归档文件库名不能随便乱起,一般是lib+库名称, 后缀名是.a表示是一个归档文件 注意:制作出来了静态库之后,发布时需要发布.a文件和.h文件。 执行make,执行makefile中的命令。原创 2018-01-22 11:51:23 · 1902 阅读 · 0 评论 -
C语言位操作复习
一.对c语言位操作的复习 2017/11/19 16:50a&b:相同为1则为1,否则为0 //特定位清零用&比如:举例:假设原来32位寄存器中的值为:0xAAAAAAAA,我们希望将bit8~bit15清零而其他位不变,可以将这个数与0xFFFF00FF进行位与即可。a=0xAAAAAAAA, b=0xFFFF00FF, c=a&b;a|b :有1则为1,否则为0原创 2017-11-25 16:26:34 · 791 阅读 · 0 评论 -
类型别名 联合类型 枚举类型
typedef--给类型起别名typedef int myINT;//关键字+类型+别名typedef int * myPoint;typedef struct NODE{int a;}_NODE; //给结构体起别名int main(void){myINT a=12;myPoint p;printf("%d\n",a);}//声明一个联合的原创 2017-07-31 17:06:57 · 617 阅读 · 0 评论 -
结构体大小的计算及设置内存字节对齐数原理理解
源码可参考上一篇的 《结构体初始化及结构体指针.结构体数组.结构体函数的调用赋值等》//结构体变量的大小不仅由 成员大小决定+内存对齐(数据存储的规则)//作用:大大增大内存读取效率//设置内存对齐#pragma pack(8);//8字节对齐 vc6.0系统默认是8字节对齐//#pragma pack(4);//8字节对齐 vc6.0系统默认是8字节对齐//#prag原创 2017-07-31 10:58:24 · 518 阅读 · 0 评论 -
结构体初始化及结构体指针.结构体数组.结构体函数的调用赋值等
#include "stdio.h"#include "stdlib.h"#include "string.h"int fun(void);int ARRSCORE[3]={133,123,124}; //学生 姓名 性别 年龄 考试成绩struct STWDENT{ char name[10];char sex;int age;i原创 2017-07-30 15:55:29 · 6263 阅读 · 0 评论 -
每日一C,指向一维、二维数组的指针及数组作为函数形参的思考(二)
时间:2017/06/01 20:49指向一维、二维数组的指针例:int vector[10], *vp=vector;//①int vector[3][10], *vp=vector;//②①合法,它为一个整型数组分配内存,并把vp声明为一个指向整型的指针②为何不合法,vp的初始化是有问题的,因为vector并不是一个指向整型的指针,而是指向一个指向整型数组的指针原创 2017-06-01 20:50:21 · 1755 阅读 · 0 评论 -
每日一c,.用strlen(),sizeof() 及空指针的梳理(三)
时间:2017/06/05 11:30一.用strlen()求字符串的长度及与sizeof()的区别库函数strlen的原型为:size_t strlen( char const *string );strlen返回一个类型为size_t的值。这个类型是在头文件stddef.h中定义的,它是一个无符号整型类型。在表达式中使用无符号数可能导致不可预期的结果。例如,下面两个表原创 2017-06-05 16:31:56 · 1892 阅读 · 0 评论 -
三.从零写双链表到基本算法的实现(终)
一.双链表的引入和基本实现1.双链表的结构首先,我们要明白双链表并不是有两条链的链表,而是有两个遍历方向的链表,因此我们所说的双链表其实就是双向链表的简称。2.有效数据+2个指针的节点(双链表)(1)单链表的节点 = 有效数据 + 指针(指针指向后一个节点)(2)双向链表的节点 = 有效数据 + 2个指针(一个指向后一个节点,另一个指向前一个节点)(3)...原创 2018-02-27 15:19:33 · 1847 阅读 · 0 评论