c - 带有字符串的 C 行为中的 sizeof 运算符
问题描述
对于sizeof运算符,我看到以下结果;我无法理解其背后的原因。我的理解是sizeof运算符以size_t形式返回结果 下面是结果,
sizeof("6") -> 2
sizeof("a") -> 2
sizeof('a') -> 4
sizeof("something") -> 10
sizeof("some") -> 5
解决方案
根据定义(C11 3.6),1 个字符需要 1 个字节(在某些特殊系统中可能不是 1 个八位字节)
"6"
有类型char[2]
,所以 2 个字节
"a"
有类型char[2]
'a'
有类型int
==> 在你的系统中,int
需要 4 个字节
"something"
有类型char[10]
"some"
有类型char[5]
请注意"a"
和'a'
是非常不同的东西:是一个包含 2 个元素"a"
的数组;是一个值,非常像or 。char
'a'
int
42
-1
推荐阅读
- html - 无法将徽标居中
- angular - 页面重新加载后 APP_INITIALIZER 未定义的结果
- python - Pygame我的敌人类在移动后消失了
- java - 自定义排序算法性能(对比 Arrays.sort() 和 parallelSort())
- javascript - 使用 PUSH 和 SHIFT 从 json 数组中提取的数据未完全初始化数组
- excel - 如果日期 = 今天更新行,否则,创建新行
- html - 不悬停时图像变大
- wordpress - 插件页面上的 Wordpress MEga 菜单插件错误
- powershell - 设置当前位置以匹配与运行脚本驱动器相同的驱动器号
- c# - 如何修复无效的 URI:在 asp.net 核心问题中无法确定 URI 的格式