这两行C++代码的区别在于它们定义的数组类型和分配的内存。
int* myArray = new int[10];
这行代码创建了一个指向整数数组的指针。具体来说,它做了以下操作:
- 使用
new int[10]
分配一个包含10个整数的数组。 - 返回指向这个数组的第一个元素的指针,并将其赋值给
myArray
。
所以,myArray
是一个指向整数数组的指针,指向一个包含10个整数的数组。
int* myArray[10] = new int;
这行代码定义了一个包含10个指针的数组,并初始化第一个元素。具体来说,它做了以下操作:
- 定义了一个包含10个指向整数的指针的数组
myArray
。 - 使用
new int
分配了一个整数,并将返回的指针赋值给myArray[0]
(即数组的第一个元素)。
所以,myArray
是一个包含10个指向整数的指针的数组,其中只有第一个元素被初始化并指向一个单独分配的整数,其他元素未初始化。
总结:
int* myArray = new int[10];
定义了一个指向包含10个整数的数组的指针。int* myArray[10] = new int;
定义了一个包含10个指针的数组,并初始化了数组的第一个元素,使其指向一个单独分配的整数。