社区
C语言
帖子详情
简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
磨刀匠
2003-07-01 11:06:01
char A[10];
int len = sizeof(A);
len的结果是10,而不是sizeof(char *)的值4??
在线等待......
...全文
779
10
打赏
收藏
简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
char A[10]; int len = sizeof(A); len的结果是10,而不是sizeof(char *)的值4?? 在线等待......
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
磨刀匠
2003-07-02
打赏
举报
回复
我查了一下MSDN:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.
我明白了, 谢谢各位!
idontlikenickname
2003-07-01
打赏
举报
回复
VC6中sizeof(int) = 4~~
磨刀匠
2003-07-01
打赏
举报
回复
ra3(可乐)的:
int len = sizeof(A);
是求A在内存中占几个字节.
如果是 int A[10];
int len = sizeof(A);
len的结果就是40 (VC6中),TC3中的结果是20
len怎么会是40,是你打错了字吗?
磨刀匠
2003-07-01
打赏
举报
回复
我的问题是 "为什么sizeof(char型数组)为数组大小,而不是4"
磨刀匠
2003-07-01
打赏
举报
回复
我知道是这样的,问题是为什么是这样? 有谁能说说吗? 比如sizeof的内部实现?
我们都知道数组名是数据第一个元素的地址指针,实际上A就是char *型, 我觉得应该和sizeof(char *)结果一样,但却不是? 。。。。
而且下面的函数又不一样,他们在语法上是一样的,但语言的底层实现不一样,我搞不清楚,希望哪位仁兄帮我解答一下。。。。。
void SizeTest(char Dat[100])
{
int i = sizeof(Dat); // i 的结果是 4,和sizeof(char *)一样
}
ra3
2003-07-01
打赏
举报
回复
int len = sizeof(A);
是求A在内存中占几个字节.
如果是 int A[10];
int len = sizeof(A);
len的结果就是40 (VC6中),TC3中的结果是20
cy214
2003-07-01
打赏
举报
回复
添一句 sizeof(&A[0]); 可以得到4 这样是char *的大小
ntxs
2003-07-01
打赏
举报
回复
sizeof(数组名) 测量出来的 是整个的数组长度
这是应该值得注意的地方 因为char的长度是1 所以整个长度当然是 10啦
有关内容见: C++ PRIMER
sizeof(char *)
如果你想测量指针本身的长度 可以这么写:
char *a; int i;
i = sizeof(a);
就可以了。
晨星
2003-07-01
打赏
举报
回复
sizeof的功能就是这样的,对于数组给出数组的字节长度。
idontlikenickname
2003-07-01
打赏
举报
回复
char *是个指针类型,大小就是4字节~
sizeof(数组名)一般不等于sizeof(该数组类型的指针),除非数组有4个元素.
C++:
char
数组
、自定义copy
数组
1.
char
数组
大小
为3,只给两个元素,那么最后一个默认为’\0’。
char
res[3] = { 'a','b' }; for (int i = 0; res[i] != '\0'; i++) { cout << res[i]; } 输出: 2.
char
数组
大小
为3,给三个元素。 ...
C++将int
型
整数转换为
char
类
型
数组
使用snprintf(s,
sizeof
(s), "%d", x),其中s为
数组
名,
sizeof
(s)为
数组
长度,"%d"指定整数类
型
,x为需要进行转换的整数。正确调用可完成整数类
型
转换字符
数组
。 通常不建议使用itoa()方法,因为它是一个非标准的C ...
C/C++ 核心准则:
sizeof
不应作用于
数组
参数
例中参数 a 是一个指针,
sizeof
(a) 等同于
sizeof
(
char
*),而不是
sizeof
...被声明为
数组
的形式参数等同于指针,对其使用
sizeof
无法获取到
数组
大小
,往往意味着错误。这样
sizeof
(a) 便等同于
sizeof
(
char
[10])。
C语言|用
sizeof
和 strlen 计算字符
数组
的
大小
因为
sizeof
是直接计算从
数组
首地址到 ‘\0’ 之间的
大小
,而strlen是计算有效字符的长度,因此设置了一个对照字符数值。//对照//对照从结果中会发现,当固定了
数组
大小
使用
sizeof
计算时结果就是该
数组
已知的
大小
。当...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章