c结构体中char[0]的作用-实现数组扩展

struct Data {       int len;       char data[0]; } 原来的data中没有元素,不分配内存,结构体Data的大小为4 假如现在分配15字节的内存,并且将指向这块内存的指针强制转换为(Data*): Data*  pData=(Data*...

2018-09-22 11:05:06

阅读数 304

评论数 0

c++一个诡异的问题,哪位大神能解答,救命啊

file3.txt是50*50的char字符,这里最后的输出的0是什么鬼啊!!!fscanf还能把m变成0??? 为什么m放在里面定义就可以了? 为什么把a[50][50]改成a[55][50]就可以了???...

2018-09-02 16:58:22

阅读数 65

评论数 1

char** ++

2018-08-31 10:07:46

阅读数 772

评论数 0

利用动态规划计算以下矩阵连乘:A1(20*25)、A2(25*5)、A3(5*15)、A4(15*10)、A5(10*20)、A6(20*25)

利用动态规划计算以下矩阵连乘:A1(20*25)、A2(25*5)、A3(5*15)、A4(15*10)、A5(10*20)、A6(20*25) A     (A1A2A3)((A4A5)A6) B     (A1A2)((A3(A4A5))A6) C     (((A1((A2A3)A4)...

2018-08-31 10:00:34

阅读数 612

评论数 0

第一趟快速排序之后的结果

使用快速排序算法对序列9,1,3,8,23,5,7,10,29,19进行排序,基准数取9,则第一趟排序后的结果为: 7,1,3,8,5,9,23,10,29,19 1、先从后往前搜索小于9的数和9交换得到:   7,1,3,8,23,5,9,10,29,19 2、再从往前搜索大于9的数和9交...

2018-08-31 09:42:45

阅读数 2803

评论数 1

c++之#define对前置和后置加加的不同表现分析

可以看到64=3*5+8*5+8+1 可以看到define只做简单的替换,所以会自加两次 而inline会先计算自加的表达式的值,然后保存自加后的,因为是前置加加所以先乘 后置加加同理  ...

2018-08-30 18:08:08

阅读数 52

评论数 0

有以下c语言程序,程序运行后的输出结果为

k=3,2,1,0 1+2+3+4=10

2018-08-30 17:03:49

阅读数 328

评论数 0

下列程序输出结果-考数组名和&数组名

可以看到&a=0x001dfc18,&a+1=0x001dfc2c 可以看到相差2c-18=(2*16+12)-(1*16+8)=44-24=20刚好5个int整型大小 所以&a+1指向a[4]=5的下一个int内存 ...

2018-08-30 16:54:05

阅读数 22

评论数 0

c++基础之memset使用、memset置为非0情况

1、memset数组、memset非0 可以看到当memset非0时会出现乱码 2、memset结构体

2018-08-30 10:58:59

阅读数 389

评论数 0

c++基础之结构体初始化和memset的使用

1、用构造函数初始化 可以看到可以在结构体的构造函数对结构特的每一个成员进行初始化 也可以使用memset对结构体的每个成员一次性初始化 2、定义的时候初始化  ...

2018-08-30 10:39:21

阅读数 269

评论数 1

c++基础之vector、数组初始化

默认定义了一个size为5初始值全为0的vector 定义了size为5的初始值全为1的vector v2 如果要指定vector中的每个值,可以通过先定义一个数组,把数组首地址和要传的最后一个元素的下一个地址传进去,比如 可以看到将a的起始元素开始到第四个元素之前的元素都给...

2018-08-30 10:11:31

阅读数 2325

评论数 0

c++基础之for_each使用和源码

首先,要使用for_each要包含文件algorithm 上面对小圆括号()进行了操作符重载 可以看到for_each的内部实现机制为对每个元素实现_Func() 并且会自动用每个元素替代函数中的形参 为了更简单的看到for_each的用处,可以比较下面两段代码    ...

2018-08-30 09:19:39

阅读数 137

评论数 0

c++基础之queue和deque比较

1、queue 可以看到是从队首弹出,先入先出 并且queue只能从队首删除元素 2、deque 可以看到deque可以访问两端但是只能修改队头 而deque可以访问两端并且可以在队首和队尾删除和插入元素...

2018-08-29 20:13:43

阅读数 1458

评论数 0

c++基础之默认参数的函数调用

1、 可以看出,调用时可以只指定未被赋值的参数 2、 可以看到10以换行符的形式赋给了b,所以输出为 3、 4、 可以看到,如果想为c重新赋值,必须把a,b也重新赋值 有关默认函数声明和定义: 1、如果函数声明有默认参数,则定义不需要再给默认参数 提示出错...

2018-08-29 18:35:31

阅读数 26

评论数 0

白话解释求字符串"mabbnmnm"的哈夫尔曼码

首先统计各字母出现频率,为了用最少的编码位数,尽量把出现频率高的字母放在树的最高位,下面来看怎么做的: m:3 n:2 a:1 b:2 排序为: 字符   a     b     n     m 频率   1     2     2     3 低的在树的最下面,先合并,权值相加,...

2018-08-29 17:36:44

阅读数 75

评论数 0

c++基础之getline,cin.getline处理换行符的区别

cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度。 getline(cin,str)函数是处理string类的函数。第二个参数为string类型的变量。  可以看到ci...

2018-08-29 10:40:19

阅读数 2280

评论数 3

c++基础之STL函数strtok以逗号和分号切割字符串为数字

前几天做头条笔试合并重复区间需要用到从带有逗号和分号的字符串中提取出数字 比如从字符串:  "1,10;32,45"中提取出数字1,10,32,45 需要用到STL 库函数strtok 使用如下: 需要注意的几点: 1、sscanf用来把指...

2018-08-29 09:46:25

阅读数 367

评论数 0

c++ 基础之STL函数sccanf易错点

可以看出sscanf参数为string和char* p都不行,必须传入指针,并且该指针指向的内存内容可以改变 可见p能把内容以字符串的格式给str 可以看到如果格式改成%d则赋值失败 可以看到原来的字符串如果含空格则只把第一个空格出现前的所有字符赋给str   ...

2018-08-29 08:58:08

阅读数 114

评论数 0

二维vector赋值时越界

 

2018-08-28 18:07:43

阅读数 70

评论数 0

c++基础之cout string类对象

如果包含了<string.h> 如果包含了<string> 可以正常输出 如果包含了<string.h>并且将要输出的字符串通过c_str()转换为c字...

2018-08-28 17:44:52

阅读数 145

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭