在c++中,字符数组中sizeof的作用以及内部一些数据类型

int arr[] = {1, 2, 3, 4, 5};

这是一个 C++ 中的数组初始化方式,声明了一个包含 5 个整数的数组,并给出了初始值。

sizeof(arr) / sizeof(arr[0]): 这是一个用于计算数组长度的常用技巧。

sizeof(arr) 返回整个数组的字节数,

sizeof(arr[0]) 返回数组中一个元素的字节数。

通过用整个数组的字节数除以一个元素的字节数,可以得到数组中元素的个数。

在这里,这个表达式计算了数组 arr 中元素的个数,即 5。

在这个字符数组中,

arr是代表字符数组arr[],其数据类型为 int[5];

arr + 5 数据类型是指针  int * __ptr64  ;

  • int * 表示一个指向整数类型的指针。
  • __ptr64 是 Microsoft Visual C++ 编译器的关键字,用于指示指针变量应该使用 64 位表示。这是 Microsoft C++ 的一个扩展,用于支持 64 位 Windows 操作系统。

arr 被声明为一个数组,而不是指针。arr 的类型是 int [5],表示一个包含 5 个整数的数组。

对于数组的初始化,arr 的名字可以隐式转换为指向数组第一个元素的指针,但这并不改变 arr 的本质,它仍然是一个数组:

但是在c++中写字符数组时也可以定义为指针类型:

int *ptr = arr;  // 合法,arr 被隐式转换为指向第一个元素的指针
ptr 是一个指向整数的指针,指向数组的第一个元素。

要查看 arr 的类型,你可以使用 decltypetypeid

#include <iostream>
#include <typeinfo>

int main() {
    int arr[] = {1, 2, 3, 4, 5};

    std::cout << "Type of arr: " << typeid(arr).name() << std::endl;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值