随笔分类 -  c语言

摘要:昨天在群里有朋友提到回显控制,以前从没听说过,所以一时兴起,今天就乘着SVN下载代码期间学习一下,话不多说直接贴代码: 阅读全文
posted @ 2017-08-04 11:14 btgo 阅读(291) 评论(0) 推荐(0)
摘要:数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; // 阅读全文
posted @ 2017-06-06 09:32 btgo 阅读(3251) 评论(0) 推荐(1)
摘要:printf("\033[1;33m Hello World. \033[0m \n"); 颜色如下: none = "\033[0m" black = "\033[0;30m" dark_gray = "\033[1;30m" blue = "\033[0;34m" light_blue = "\033[1;34m" green ... 阅读全文
posted @ 2017-06-01 16:08 btgo 阅读(6207) 评论(0) 推荐(3)
摘要:先看代码 如何编写可变参数函数呢?我们首先来看看printf函数原型是如何定义的。在linux下,输入man 3 printf,可以看到prinf函数原型如下: 后面的三个点...表示printf参数个数是不定的.如何实现可变参数函数?2. 编写可变函数准备为了编写可变参数函数,我们通常需要用到<s 阅读全文
posted @ 2017-05-31 15:36 btgo 阅读(7248) 评论(1) 推荐(0)
摘要:证明: 1.输出不同的m个值: 由这个for循环循环n次,且在满足条件时才输出i,可知,输出不同值的要求已满足,因为每次输出的都是i值,而i值每次都是不一样的,m--保证了程序在输出了m个值后就不再输出i。 2.等概率: 在i=0时,rand()%(n-i)的取值范围为0到n-1,共n个数,此时要输 阅读全文
posted @ 2017-05-23 08:47 btgo 阅读(830) 评论(0) 推荐(0)
摘要:Linux Source命令及脚本的执行方式解析 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。source命令:sourc 阅读全文
posted @ 2017-05-17 09:14 btgo 阅读(89149) 评论(0) 推荐(2)
摘要:原则: 1.结构体内成员按自身按自身长度自对齐。 自身长度,如char=1,short=2,int=4,double=8,。所谓自对齐,指的是该成员的起始位置的内存地址必须是它自身长度的整数倍。如int只能以0,4,8这类的地址开始 2.结构体的总大小为结构体的有效对齐值的整数倍 结构体的有效对齐值 阅读全文
posted @ 2017-05-12 15:33 btgo 阅读(213) 评论(0) 推荐(0)
摘要:语言的结构体可以将不同类型的对象聚合到一个对象中,在内存中,编译器按照成员列表顺序分别为每个结构体变量成员分配内存,但由于 C 的内存对齐机制以及不同机器间的差异,各个成员之间可能会有间隙,所以不能简单的通过成员类型所占的字长来推断其它成员或结构体对象的地址。 如果要计算结构体中某成员相对于该结构体 阅读全文
posted @ 2017-05-10 14:59 btgo 阅读(4242) 评论(0) 推荐(0)
摘要:如果你是 C++ 程序员,应该接触过 C++11 里的 decltype 操作符,它的作用是自动推导表达式的数据类型,以解决泛型编程中有些类型由模板参数决定而难以(甚至不可能)表示的问题。其实这个特性在 C 语言中也早有类似的实现,GNU C 标准中的一个扩展特性 typeof (PS: 不是 ty 阅读全文
posted @ 2017-05-10 14:51 btgo 阅读(435) 评论(0) 推荐(0)