这段代码int arr[5] = {1, 2, 3, 4, 5}; int *p = &arr[2]; int x = *p;为什么不呢直接int arr[5] = {1, 2, 3, 4, 5}; int x= &arr[2];
时间: 2023-05-30 07:06:54 浏览: 119
&arr[0];
定义了一个包含5个int类型元素的数组arr,其中元素依次为1, 2, 3, 4, 5。同时,定义了一个指向int类型变量的指针p,p的初值为数组arr第一个元素的地址(即&p[0])。因为数组名arr本身就是指向数组首元素的指针,所以也可以写成int *p = arr;。
相关问题
int *arr = {1,3,4,5}这样写的问题
这样写会报错,因为 int *arr 是指向整数的指针,而 {1, 3, 4, 5} 是一个整数数组,不能直接赋值给指针。如果要将数组赋值给指针,应该这样写:
```
int arr[] = {1, 3, 4, 5};
int *p_arr = arr;
```
或者这样写:
```
int *p_arr = (int []){1, 3, 4, 5};
```
这两种方式都可以将数组赋值给指针。
int *arr;arr={1,2,3,4,5}写法有问题啊没
是的,这种写法是错误的。在C++中,你需要使用大括号来初始化数组,例如:
```c++
int arr[] = {1, 2, 3, 4, 5};
```
或者使用动态内存分配来分配一个数组,例如:
```c++
int* arr = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
```
请注意,如果你使用动态内存分配来分配数组,则需要在使用完数组后使用delete[]来释放内存,例如:
```c++
delete[] arr;
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)