C ++中的sizeof字符串数组

汤姆

我对C ++中的sizeof字符串数组感到困惑,我有以下字符串数组:

static const char* namedButtonStr[] = {
        "GLUT_LEFT_BUTTON",
        "GLUT_MIDDLE_BUTTON",
        "GLUT_RIGHT_BUTTON"
};

为了获得此数组的大小,使用了以下代码:

int size = int(sizeof(namedButtonStr)/sizeof(namedButtonStr[0]));

其中sizeof(namedButtonStr),12sizeof(namedButtonStr[0])是4,数组的大小是12/4 = 3。

我的问题是,为什么sizeof(namedButtonStr)12和sizeof(namedButtonStr[0])4?我的理解是sizeof(namedButtonStr)3sizeof(namedButtonStr[0])等于17(“ GLUT_LEFT_BUTTON”有17个字符)。

弗拉德

namedButtonStr[0]是类型const char*,因此它sizeof是指针的大小,而不是它指向的数组。

namedButtonStr相反,是一个数组,因此它sizeof是整个数组的字节大小,即3 * sizeof(<one item in the array>)


编辑:顺便说一下,这是确定数组大小的一个非常标准的习惯用法,您会经常看到它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++中的sizeof字符串数组

来自分类Dev

c中的字符串数组声明

来自分类Dev

在C中创建字符串数组

来自分类Dev

C ++中的全局字符串数组

来自分类Dev

遍历c中的字符串数组

来自分类Dev

在C中处理字符串数组

来自分类Dev

C ++数组中字符串的长度

来自分类Dev

c中的数组和字符串

来自分类Dev

从 C 中的字符串数组打印

来自分类Dev

字符串中的 C++ 数组

来自分类Dev

传递给函数时,字符串数组上的 C++ sizeof 不返回预期结果

来自分类Dev

C ++在数组或字符串中插入字符

来自分类Dev

C ++在数组或字符串中插入字符

来自分类Dev

如何正确清空 C 中的字符串(字符数组)?

来自分类Dev

一维字符串数组与C中的二维字符串数组的比较

来自分类Dev

将字符串存储到C中的数组中

来自分类Dev

在C#中的string []数组中插入字符串

来自分类Dev

如何在C中的数组中存储字符串

来自分类Dev

在 C 中的字符串数组中写入值

来自分类Dev

将字符串存储在c中的数组中时截断字符串

来自分类Dev

为什么需要在C中的字符串数组中声明字符串的长度?

来自分类Dev

在C中修改字符串数组中的字符串

来自分类Dev

如何在C中的字符串数组中更改单个字符串?

来自分类Dev

将字符串读取到C中的二维字符串数组中

来自分类Dev

在C中修改字符串数组中的字符串

来自分类Dev

在C中的字符串的char数组中搜索字符串

来自分类Dev

如何从 C# 中的字符串数组中删除空字符串?

来自分类Dev

字符串数组中的元素移位,C

来自分类Dev

比较字符串到c中的多个数组