C/C++
猪的忧伤
时间不止,生命不息,学习不懈。
展开
-
关于字符串常量在内存中的生命周期
字符串char *p="hello" char p[]="hello"原创 2014-07-18 22:14:46 · 6273 阅读 · 5 评论 -
c++ 类中static成员的使用
在c++类中static成员遵循正常的cgebgtyab原创 2014-09-15 13:27:10 · 588 阅读 · 0 评论 -
C语言操作符和表达式以及数据类型提升实例以及疑惑
先上源码该源码的主要是用将unsigned int、unsigned char、unsigned float的三种数据类型分别将这三种数据类型进行小减大然后if判断该相减表达式的正负值,然后根据结果打印出想对应的字符串其结果如代码下面的截图#include#includeint main(void){unsigned int ua,ub;unsigned原创 2015-06-17 21:29:24 · 647 阅读 · 0 评论 -
C语言中##和#argument预处理运算符
##预处理运算符 的作用是在宏定义中运算符中左右两边的符号连接成一个符号。例如#define CON(a,b) a##bCON(5,3)就表示是53 CON(a,3)就表示是a3下面看一下实例源码如下#include#include#define CON(a,b) a##bint main(void){int a;int a1 = 1原创 2015-06-18 10:09:48 · 1640 阅读 · 0 评论 -
C可变参数列表函数
C语言中可以定义接收不同的参数的函数可变参数的函数可以接收不同数目的参数,但是需要注意的是c语言中函数的参数个数不能超过5个。可变参数的函数的原型如下int narg_sum(int arg_num, ... )在参数列表中至少要有一个命名的参数。可变参数函数的实现需要用到va_start、va_arg、va_end这三个宏和va_list的数据类型,这些宏定义在stdarg.h。原创 2015-06-11 17:07:41 · 622 阅读 · 0 评论 -
C语言中typedef的用法和#define区别
typedef 类型定义typedef 是给各种数据类型定义新名字,主要是用来简洁的表示一些复杂的数据类型,比如说指向其他对象指针之类defined也有这个意思,但是define宏只是进行一种简单的替换。普通的变量声明方式,比如声明一个字符型变量 char c;声明一个字符型指针变量为 char *cptr;fptr被声明为一个返回为void形参为(int,int)原创 2015-07-03 15:41:08 · 651 阅读 · 0 评论 -
确认当前系统的大小端存储模式
大端模式:数据的高字节,保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式:数据的高字节,保存在内存的高地址中,而数据的低字节保存在内存的低地址中。检查当前系统的存储模式为大小端的一种方式是使用union类型数据。由于union中所有的数据成员共用一个空间,所有的数据成员都是共用一个起始地址。空间的大小为数据成员中长度最长的数据成员。具体实现如下原创 2015-10-22 09:31:40 · 674 阅读 · 0 评论 -
二叉树(C语言)
树可以使用链表也可以用数组实现数组的实现通过下表与树的节点的序列对应,但是该方不够灵活,而且在C语言中,数组不进行下界检查,而且不能进行动态增长。在比较通用的实现方式使用的是树链表实现。对于大量的数据输入,链表的线性范文时间太慢,不宜使用,树的大部分操作的运行时间平均为O(log N)具体参照源码:二叉树二叉树是最简单、应用最广泛的树,通过构造表达式树,对表达式树的一些原创 2016-06-03 17:33:48 · 917 阅读 · 0 评论