2022
05-15
05-15
C语言中栈的两种实现方法详解
目录一、顺序栈二、链式栈总结一、顺序栈#include<stdio.h>#include<stdlib.h>#definemaxsize64//定义栈typedefstruct{intdata[maxsize];inttop;}sqstack,*sqslink;//设置栈空voidClearstack(sqslinks){s->top=-1;}//判断栈空intEmptystack(sqslinks){if(s->top<0)return1;elsereturn0;}//进栈intPush(sqslinks,intx){if(s->top>=maxsize-1)return0;else{s->top++;s->data[s->top]=x;return...
继续阅读 >
目录1.算术操作符+-*/%2.移位操作符>>(右移操作符)<<(左移操作符)左移操作符:<<右移操作符:>>3.位操作符3.1&按位与3.2|按位或3.3^按位异或3.4~按位取反4.赋值操作符=5.逻辑操作符5.1!非5.2&&与5.3||或6.条件运算符?7.单目操作符7.1!7.2+正值7.4&取地址7.5sizeof7.6(强制类型转换)7.7++--自增自减7.8*解引用8.逗号表达式9.关系操作符==>=<=!=><=9.1==9.2!=9.3>=<=总结前...
OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调试信息输出到编译器的输出窗口,还可以用DbgView(本机或TCP远程)这样的工具查看,这样就可以脱离编译器了。 OutputDebugString默认只能输入一个参数,不能像printf那样格式化输出,下面改造成类似printf函数的输出方式。#include<windows.h>#include<stdio.h>//#include<stdlib.h>#include<stdarg.h>#def...
在linux内核编程中,会经常见到一个宏函数container_of(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢??? 哎,算了,还是放弃吧。。。)。这就是内核大佬们厉害的地方,随便两行代码就让我们怀疑人生,凡是都需要一个过程,慢慢来吧。 其实,原理很简单: 已知结构体type...
目录一维动态数组的创建:二维数组的创建:很多人在编写C语言代码的时候很少使用动态数组,不管什么情况下通通使用静态数组的方法来解决,在当初学习C语言的时候我就是一个典型的例子,但是现在发现这是一个相当不好的习惯,甚至可能导致编写的程序出现一些致命的错误。尤其对于搞嵌入式的人来所,嵌入式系统的内存是宝贵的,内存是否高效率的使用往往意味着嵌入式设备是否高质量和高性能,所以高效的使用内存对我们来说是很重要的...
目录C语言当中使用的数据类型使用的类型整型类浮点类型内存当中的存储原码、反码、补码大小端什么是大小端浮点数的存储浮点数的存储浮点数的存储规则指数E从内存当中取出总结C语言当中使用的数据类型使用的类型char字符数据类型short短整型int整形long长整型longlong更长的整形float单精度浮点数double双精度浮点数这些里面又分为整型和浮点型整型类整型又分为有符号整型和无符号整型,[int]可以...