c语言
MichaelJay2015
这个作者很懒,什么都没留下…
展开
-
c 内存对其
作者:zdd出处:http://www.cnblogs.com/graphics/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利转载 2015-12-02 10:56:19 · 299 阅读 · 0 评论 -
c: main()中int argc, char* argv[]参数的用法
main(int argc,char *argv[ ])argv为指针的指针argc为整数char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入prog,则由操作系统传来的参数为:argc=1,表示只有一程序名称。argc只有一个元素,argv[0]指向输入原创 2016-06-02 23:34:36 · 352 阅读 · 0 评论 -
c动态内存
在程序中只有运行时才分配内存空间的方法称为动态存储分配。 特点: 1. 在内存的堆中进行; 2. 内存的管理有用户自己管理,动态内存的生存周期有我们自己决定; 3. 动态分配的内存不会自动初始化,需要自己来清零或其他初始化处理;bzero(void* buf, size_t size);创建:void* malloc(size_t size);创建的内存空间放在void*类型的指针对象原创 2016-07-03 21:56:53 · 197 阅读 · 0 评论 -
c中符号位扩展
今天面试,遇到这样一道题:char c = 128;printf("%c",c);printf("%u",c);printf("%d",c);问输出结果。printf("%u\n", c); //按%u输出,结果为 4294967168printf("%d\n", c); //按%d输出,结果为 -128printf("%c\n", c);//按%c输出,结果为ASCII表对应的字符原因:原创 2016-05-23 17:16:38 · 904 阅读 · 0 评论 -
c高级c存储类型
c高级 存储类、链接、内存管理存储模型对程序中数据存储空间的抽象。静态存储,一直都在,直到程序完蛋;动态,用就申请,搞完就甩了,例如函数形参那个悲惨的家伙,用完后,就没有然后了。具体分类auto 奥拓,不摆了;register:暗示编译器要频繁使用,快,最好放在CPU寄存器中,但也是暗示,给不给也不一定。全局变量不能暗示。静态、空链接与动态不同之处:编译完后就分配储存空间了静态默认自动初原创 2016-06-20 20:34:16 · 272 阅读 · 0 评论 -
c高级预处理
预处理预处理格式要求6/13/2016 11:17:27 PM 必须放在每行开头,因此在源文件中一行只能有一条预处理命令;但是一条预处理指令可以放在多行,只需要在每行结尾添加 \ 即可。宏定义无参宏定义宏定义不是声明或者语句,行末没有分号;宏定义从定义处直到程序结束,如需提前结束,使用#undef来取消;宏名在程序中使用双引号括起来,则预处理不替换;对输出格式使用宏定义,可以减少麻烦;原创 2016-06-20 20:36:45 · 353 阅读 · 0 评论 -
个人记事本
strlen()size_t strlen(const char *s);The strlen() function calculates the length of the string s, excluding**(不包括)** the terminating null byte (‘\0’). 计算长度时,不包括末尾的结束符’\0’。 但是,换行符’\n’要计算在内。fgets()c原创 2016-07-08 20:16:36 · 234 阅读 · 0 评论 -
全局变量和局部变量在内存中的区别
程序中各数据类型在内存中的分配:1、栈区(stack):——– 由编译器自动分配释放(存放函数的参数值, 局部变量的值等),操作方式类似于数据结构中的栈; 2、堆区(heap) :——– 由程序员分配释放,如果不释放可能由OS回收,但区别与数据结构中的堆,其分配方式类似于链表; 3、全局区/静态区(全局变量/static):——- 全局变量和静态static变量是放在一起的已初始化的全局va原创 2016-07-18 19:29:05 · 2417 阅读 · 0 评论 -
大端,小端
这里引用一位朋友的写的,很不错. 大端小端转载 2016-09-08 22:40:43 · 222 阅读 · 0 评论 -
sizeof/strlen区别
sizeof/strlen区别转载 2016-09-09 11:41:28 · 245 阅读 · 0 评论 -
指针变量
指针1.指针运算6/13/2016 11:15:13 PM指针相减的结果是 两个指针之间相隔数据的个数。int fun(char *s) { char *t=s; while(*t++) ; t--; return(t-s); }函数fun()的功能是,求char数组的长度。 而不是两个指针之间相差的字节数!一级指针&二级指针6/13/2016 11:原创 2016-06-14 10:03:15 · 285 阅读 · 0 评论 -
强制转换符的优先级
运算符优先级强制转换符6/13/2016 11:25:51 PM (float)5/2;//表达式的值为2.5;因为,强制转化()优先级比四则运算符高,因此先执行强转,然后求商。原创 2016-06-14 10:03:43 · 2282 阅读 · 0 评论 -
数组
数组左值右值6/13/2016 11:27:41 PM 数组名不能作为左值;原创 2016-06-14 10:04:35 · 149 阅读 · 0 评论 -
类型转换
类型转换1.浮点数转换成int6/13/2016 11:26:42 PM int i = 1.6; //i=1;将会自动取整,即i=1;省去小数位, 不四舍五入原创 2016-06-14 10:04:52 · 261 阅读 · 0 评论 -
库(动态库/静态库)
库(静态库和动态库的分析)6/28/2016 7:04:01 PM 本质上来说,是一种可执行代码的二进制形式,可以被os载入内存执行。由于windows/linux的本质不同,因此两者的库的二进制是不兼容的。分类:静态库:程序编译时链接到目标代码中,程序运行中不再需要静态库,因此体积比较大;动态库:编译时,不会链接到目标文件中,而是在运行时被载入。因此在程序运行时还需要动态库存在,代码体积小。原创 2016-06-28 19:31:57 · 301 阅读 · 0 评论 -
线性表
线性表6/27/2016 20:35 PM 1. 顺序线性表seqlist在内存中的存储在连续的空间,可以利用一维数组实现。特点:1. 连续存储;2. 存取密度高;3. 删除、插入需要移动大量元素;4. 内存利用不灵活2. 链式线性表linklist内存中随机存储,分不再不同存储块,称为结点。通过指针相互链接。 typedef struct node_t{原创 2016-06-27 20:40:15 · 685 阅读 · 0 评论 -
树与二叉树
树与二叉树非线性结构:一对多关系。概念度数: 节点的孩子数量,书的度数=节点中最大度数;层次: 节点在树的第几层(根节点层数=1);高度/深度: 最大层数;路径长度=从root到该节点的路径边数;森林= n棵互不相交的树(森林+root=一棵树);二叉树定义: 所有节点只有最多两个孩子的树。性质:1. 严格区分左右孩子(即使只有1个孩子);2. 第i层上的 节点最多为 2^(i-原创 2016-06-24 17:16:05 · 311 阅读 · 0 评论 -
c高级字长字节序对齐
c高级字节序、字长、数据对齐字长计算机一次完成处理的数据—字。不同体系结构,字长不同,目前常见的为32位字长处理器。为了解决不同体系结构不同字长问题,嵌入式linux中给出了:不透明数据类型:隐藏了内部格式结构;例如保存进程标识符的pid_t实际长度被隐藏;透明数据类型:长度明确的数据类型;在嵌入式中,储存硬件操作需要用到的数据类型,一般放在驱动文件,使用typedef映射到对应数据类型,如原创 2016-06-20 20:34:50 · 411 阅读 · 0 评论 -
函数数组传递
将数组传递到函数一维数组void fun(int array[]);二维数组原创 2016-06-14 10:05:08 · 366 阅读 · 0 评论 -
条件表达式
条件表达式1. (条件)?表达式1:表达式26/13/2016 11:15:40 PM 意为:当条件为真时,执行表达式1;否则执行2。因此如下代码(EXP)?i++;j--表达式中(EXP)完全等价的是(EXP!=0)因为,当表达式不为0,即为真。当表达式==0时,条件为假。原创 2016-06-14 10:04:15 · 265 阅读 · 0 评论 -
预处理
预处理#预处理格式要求6/13/2016 11:17:27 PM # 必须放在每行开头,因此在源文件中一行只能有一条预处理命令;但是一条预处理指令可以放在多行,只需要在每行结尾添加 \ 即可。原创 2016-06-14 10:03:58 · 249 阅读 · 0 评论 -
Makefile
Makefile变量声明变量使用换行符 类似define功能自动推导隐晦规则PHONY表声明的文件是伪标件减号-命令以TAB开始语法规则指定make的文件引用其他伪目标Makefile1. 变量声明:递归展开: 将变量完全展开, 如果变量中还有其他变量也全部展开; VAR = var简单展开: 只是展开一次, 不展开它包含的其他变量; VAR := var2.原创 2017-05-12 13:58:14 · 462 阅读 · 0 评论