c++ - sizeof(int) 和 sizeof(int*) 有什么区别?此语句 int* numbers[] = {....} 是否正确?

标签 c++ arrays pointers sizeof

<分区>

假设,

int numbers [20];
int * p;

我认为这个说法是有效的

p = numbers;

但这不是

numbers = p;

因为 numbers 是一个数组,作为常量指针操作,我们不能给常量赋值。那么,如果我们这样做,那么我们不能在初始化数组时使用 *numbers 吗?

最佳答案

int numbers [20]; int * p;

I think this is statement is valid

p = numbers;

But this is not

numbers = p;

Because numbers is an array, operates as a constant pointer, and we cannot assign values to constants.

numbers 不是一个常量指针,它是一个不可修改的左值,所以你不能给它赋值。

sizeof(int) 在任何特定实现上返回整数的大小

sizeof(int*) 返回指向整数的指针的大小。

sizeof() 的返回类型是size_t(无符号)

关于c++ - sizeof(int) 和 sizeof(int*) 有什么区别?此语句 int* numbers[] = {....} 是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811440/

相关文章:

c++ - 错误-11

c++ - 对成员使用下划线后缀是否有益?

c++ - 在Windows控制台中排队

php - 跨 2 个表名是动态的数据库的 mysql UNION?

c++ - 使用数组的段错误

c++ - Windows Mobile 套接字 SSL 通信库

ios - 在 Objective C 中创建 JSON 数组

c++ - 通过 int 变量设置 char[] 的大小

c - 从函数返回指向链表节点的指针

java - Java 中的 C 指针等价