c - 谁能告诉我这种数据类型有多少字节?
问题描述
我在这里有一个作业,想知道这个数组有多少字节:
字符测试[]="测试";
我知道数据类型 char 有 1 个字节。但是这里有多少字节?
可能是一样的吗?
谢谢你们!
解决方案
数组由字符串字面量的元素初始化
char test[]="test";
因此数组的元素数量与字符串字面量一样多,因为数组的大小没有明确指定。
内存中的字符串字面量表示为字符数组
char literal[] = { 't', 'e', 's', 't', '\0' };
也就是说,它有 5 个字符,包括终止零字符。所有这些字符都用于初始化数组。
所以数组的大小等于5 * sizeof( char )
。sizeof( char )
总是等于1
。所以数组的大小等于5
。
您可以通过调用标准 C 函数 printf 来检查这一点
printf( "sizeof( test ) = %zu\n", sizeof( test ) );
这是一个演示程序。
#include <stdio.h>
int main(void)
{
char test1[] = "test";
printf( "sizeof( test1 ) = %zu\n", sizeof( test1 ) );
char test2[] = { 't', 'e', 's', 't', '\0' };
printf( "sizeof( test2 ) = %zu\n", sizeof( test2 ) );
return 0;
}
它的输出是
sizeof( test1 ) = 5
sizeof( test2 ) = 5
推荐阅读
- python-3.x - 如何在后台运行python创建一个独立的进程
- swift - 日期函数返回不正确的结果
- php - Symfony 3.4 没有注册任何 cookie?
- android - 如何更新我的电话号码验证功能以仅验证美国电话号码?
- c# - 如何从C#中的另一个组合框中删除从组合框中选择的项目
- php - 按自定义表格结果排序 wordpress 帖子
- xml - 邮递员将字节数组响应保存到文件中
- h2o - 如何在 JS 或 EXCEL 中导出 h2o 模型?
- bigcommerce - 来自客户/商店的 BigCommerce 客户属性
- haskell - 我无法确定为什么会出现 ***异常:堆栈溢出