声明 a是destination的首地址,b是source的地址 (1)strcpy作用:strcpy的作用是把source的b复制到destination中的a使用方式:strcpy(a,b)使用示例程序如下: #include<stdio.h>#include<string.h> int mai ...
分类:
其他好文 时间:
2018-10-14 11:36:10
阅读次数:
201
从数组的内存模型上来看,“下标”最确切的定义应该是“偏移(offset)”。那么a[0]就是偏移为0 的位置,即首地址,a[k]就表示偏移k个type_size的位置,所以计算a[k]的内存地址: a[k]_address = base_adress+k*typ_size 但是,如果从1开始计数,那 ...
分类:
编程语言 时间:
2018-10-12 11:01:50
阅读次数:
156
1. 数组 1.1 数组为什么从零编号? 数组名代表数组的首地址,数组的下标其实代表数组中某个元素相对首地址的偏移量,数组的第一个元素是零偏移,因此从 0 开始。 上面其实也只是一个解释, C 语言设计者用零开始编号,后来的各种语言也便纷纷效仿,因此就形成了这个习惯。 1.2 数组的特点? 数组是一 ...
分类:
编程语言 时间:
2018-10-10 22:05:27
阅读次数:
158
C++基础部分: 1.数组和指针的区别 (1)数组本身体现出来的就是一个 指针常量的 “特性”,即不能对数组的首地址进行修改,内存上的地址就已经是确定了的。而指针本身是一个变量,他指向了一个地址,这个是可以变化的,也就说他可以重新赋值指向新的地址; (2)当调用sizeof函数时,对于数组,得到的是 ...
分类:
编程语言 时间:
2018-10-08 00:48:09
阅读次数:
215
Java中内存分为: 栈:存放简单数据类型变量(值和变量名都存在栈中),存放引用数据类型的变量名以及它所指向的实例的首地址。 堆:存放引用数据类型的实例。 Java的垃圾回收 由一个后台线程gc进行垃圾回收。 虚拟机判定内存不够的时候会中断代码的运行,这时候gc才进行垃圾回收。 缺点:不能够精确的去 ...
分类:
编程语言 时间:
2018-09-30 22:43:22
阅读次数:
151
在C语言中malloc函数主要是用在堆内存的申请上,使用malloc函数时,函数会返回一个void *类型的值,这个值就是你申请的堆内存的首地址;为什么返回的地址是一个void *类型的地址呢?首先我们要先弄明白,到底void是一个什么类型呢?很多C语言的初学者认为,void类型就是空类型,就是没有 ...
分类:
编程语言 时间:
2018-09-28 16:38:07
阅读次数:
160
字符串常量:char* a = "hello world"; 首先,操作系统在编译器规划内存方案中的的文字常量区分配一段内存,存储"hello world"字符串,然后在栈区分配一个内存,存储"hello world"字符串所在内存的首地址,字符串常量一旦分配是不允许修改的,即a[2]=’E’是错误 ...
分类:
其他好文 时间:
2018-09-25 14:07:34
阅读次数:
135
我们要使Srot能排序Array数组类。 Sort应该既能排序静态数组类又能排序动态数组类。 这个函数返回原生数组的首地址。 数组类需要新增成员函数array,排序类需要新增六个静态成员函数。 Array.h添加array函数: Sort.h改进如下: 无代理时的测试程序: 结果如下: 使用代理类: ...
分类:
编程语言 时间:
2018-09-21 23:05:38
阅读次数:
212
[TOC] 1.数组首地址、数组首元素地址 int a[3]; a:数组首元素地址 a+1 地址+4 &a:数组首地址 &a+1 地址+4 3 2.堆区画图 3.静态局部变量画图 4.栈的生长方向、内存存放方向、堆的存放方向 5.数组做函数参数退化为指针 原因:为了高效。若为数组,要拷贝整个数组内容 ...
分类:
其他好文 时间:
2018-09-17 22:12:12
阅读次数:
213
call 指令与 retn 指令 首先我们得了解 CALL 和 RETN 指令的作用,才能更好地理解调用规则,这也是先决条件。 实际上,CALL 指令就是先将下一条指令的 EIP 压栈,然后 JMP 跳转到对应的函数的首地址,当执行完函数体后,通过 RETN 指令从堆栈中弹出 EIP,程序就可以继续... ...
分类:
其他好文 时间:
2018-09-11 12:20:11
阅读次数:
221