基本的数组定义,数组就是向计算机申请一个连续的地址类存储数据,具体每一个连续的地址是多少,需要根据数据类型来判断,比如int类型占4个字节,char 类型占一个字节
int main()
{
// 定义一个int型,数组长度为5的数字
int example[5];
// 为数组赋值
example[2] = 2;
// 定义一个指针指向这个数组
int* ptr = example;
// 类似与上面 example[2] = 2 一样的情况,指针指向的数组的首地址
*(ptr+2) = 2;
// 使用 char类型的指针,每次指针移动一个直接, 所以相对于int指针,我们就需要 2*4次
*(int*)((char*)ptr + 8) = 2;
// 数组的赋值,我们可以使用for循环
for(int i=0;i<5;i++)
{
// 根据索引号为数组赋值
example[i] = 5;
}
}
另外一种常用的数组定义,这种定义性能较上面这种方法要插一下,主要原因是要进行两次寻址,具体代码如下:
int main(){
// 将属组的地址指向 新创建的int [5] 数组的首地址,也就是说example只是存储了数组的地址
int * example = new int[5];
// 打印example的大小是 4,所以这种情况需要注意一下
std::cout << sizeof(example) << std::endl;
for(int i=0;i<5;i++)
{
// 根据索引号为数组赋值
example[i] = 5;
}
}
数组的所以必须是静态常量,不然编译器就会报错
class Entry
{
public:
//静态常量
static const int size = 5;
void createArray()
{
// 申明数组
int exmaple[size];
}
};
网友评论