C/C++
文章平均质量分 56
CodingBugs
Nothing is impossible.
展开
-
动态数组
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct{ int *data; int capacity; int len;}IntDyArray;IntDyArray *initArray(int capacity){ IntDyArray *arr; arr=(I原创 2016-10-09 22:30:11 · 238 阅读 · 0 评论 -
预处理指令--define
计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。#include <stdio.h>#define MAX 100/*上述两个称为预处理指令,因为它们是有预处理器解释的。在预处理阶段,define将替换原来定义的值原创 2017-02-03 18:29:34 · 472 阅读 · 0 评论 -
内存对齐
1:数据成员对齐规则: 结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。结构体内的成员根据定义的顺序,依次在内存中占据自身字节大小整数倍的地址,以结构体首地址为参考(原创 2017-02-02 15:59:02 · 192 阅读 · 0 评论 -
double类型解析
double类型存储规定:把浮点数化成小数点前只有1位的小数与2的指数的乘积的形式,存储小数点后的52位,2的指数及数的符号。sizeof(double) // 8个字节#include <stdio.h>//利用共用体的特点,所有类型共用一段最大的内存空间typedef union { double d; char byte[8];}BIT;int main(){原创 2017-01-24 21:19:32 · 1383 阅读 · 0 评论 -
double类型解析
double类型存储规定:把浮点数化成小数点前只有1位的小数与2的指数的乘积的形式,存储小数点后的52位,2的指数及数的符号。sizeof(double) // 8个字节#include <stdio.h>//利用共用体的特点,所有类型共用一段最大的内存空间typedef union { double d; char byte[8];}BIT;int main(){原创 2016-12-08 22:58:36 · 10689 阅读 · 0 评论 -
float类型解析
float数据在内存中的存储方法原文链接浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。 一个浮点数由2部分组成:底数m 和 指数e。 ±mantissa × 2exponent (注意,公式中的mantissa 和 exponent使用二进制表示)底数部分 使用2进制数来表示此浮点数的实际值。转载 2017-01-24 21:14:41 · 5369 阅读 · 0 评论 -
整型提升
整型提升 C的整型算术运算符总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符型操作数在使用之前被转化为普通整型,这种转换称为整型提升(integral Promotion)。(C和指针)如果原始类型(char/short)的所有值都可用int类型表示,则其值将被转换为int类型;否则将被转换为unsigned int类型。 eg. 1.移位运算#include <stdi原创 2017-01-23 21:35:30 · 546 阅读 · 1 评论 -
函数指针
1.函数指针声明/使用#include <stdio.h>int sum(int, int);int main(){ int (*f)(int, int); int x; f = ∑ //x = sum(1, 2); x = f(1, 2); //x = (*f)(1, 2); printf("%d\n", x); ret原创 2017-01-21 12:00:03 · 239 阅读 · 0 评论 -
mutable
mutable: 用于修饰 被const修饰的成员函数要访问的非静态成员变量,被const修饰的成员函数不能修改成员变量的数据,mutable突破const的限制,但仅仅用于改变与类对象状态无关的的成员变量#include <iostream>using namespace std;class text {public: text() : num(0) {} int Pri原创 2017-02-16 19:39:08 · 387 阅读 · 0 评论 -
拷贝构造函数的 深/浅 复制
深浅复制问题在与类内有指针的情况下,默认拷贝构造函数只会为指针赋值,使其指向被拷贝对象的指针指向的内存地址,并不会另外单独为其申请一段内存空间;默认的拷贝构造函数就只能实现浅复制,要达到深复制就要重载拷贝构造函数,动态分配内存,拷贝类对象指针所指向的值;eg.#include <iostream>#include <cstring>using namespace std;/** 拷贝构造原创 2017-02-18 20:12:58 · 251 阅读 · 0 评论 -
蛇形填数
#include <stdio.h>#include <stdlib.h>#include <string.h>void print(int n, int a[][n]){ int i,j; for(i = 0; i < n; ++i) { for(j = 0; j < n; ++j) { printf("%3d ",a[i][j]);原创 2016-12-20 21:13:00 · 181 阅读 · 0 评论 -
内存分配函数
1.malloc原型:extern void *malloc (size_t __size);2.calloc 原型:extern void *calloc (size_t __nmemb, size_t __size)3.realloc 原型:extern void *realloc (void *__ptr, size_t __size)功能类似:分配size大小的连续的内存空间,并返回vo原创 2016-12-17 23:51:51 · 358 阅读 · 0 评论 -
int类型在内存中的存储方式
[原文链接](http://blog.csdn.net/ly_w1989/article/details/50213011) Q1:int类型在内存中是以何种方式存储的?要解决这个问题,我们需要首先比较深入地理解下int类型。{本文中的int类型的相关数据,如无特别说明都以32位操作系统下的VC++6.0编译器环境为准。在下表中可以看到,int类型表示带有符号的整型,而unsigned in转载 2017-01-03 23:30:15 · 7451 阅读 · 1 评论 -
memset用法
memsetmemset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。该函数对数组操作时只能用于数组的置0或-1,其他值无效(出现错误值)。#include<stdio.h>#include <stdlib.h>#d原创 2017-01-03 23:23:19 · 1269 阅读 · 1 评论 -
不定参数函数
参数的存储位置#include <stdio.h>int func(int,int);int main(){ int a = 1,b = 2; int sum = func(a,b); printf("sum = %d\n",sum); return 0;}int func(int a,int b){ printf("$a = %p\n&b =原创 2016-12-15 23:36:24 · 770 阅读 · 0 评论 -
诡异的指针
“[]”运算 与 指针//1.Ex1[Ex2] = *(Ex1 + Ex2)int a[SIZE] = {1,2,3,[3] = 4};int *p = a;printf("%d %d\n",p[3],*(p + 3));//p[3],*(p + 3) -> 等价//2.Ex1[Ex2] = Ex2[Ex1]int a[SIZE] = {1,2,3,[3] = 4};int *p = a;p原创 2016-12-09 17:16:52 · 193 阅读 · 0 评论 -
素数判断的几种方法代码实现及其复杂度分析
素数判断的几种方法代码实现及其复杂度分析 <div class="article_manage clearfix"> <div class="article_l"> <span class="link_categories"> 标签: <a href="http://www.csd转载 2016-11-05 20:05:43 · 13890 阅读 · 3 评论 -
Linux进程通信-消息队列
系统调用函数int msgget(key_t key, int msgflg);int msgctl(int msqid,int cmd,struct msqid_ds *buf);int msgsnd(int msqid,struct msgbuf *msgp,size_t msgsz,int msgflg);sszie_t msgrcv(int msqid,struct msgb...原创 2018-05-03 23:12:51 · 317 阅读 · 0 评论