社区
C语言
帖子详情
简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
磨刀匠
2003-07-01 11:06:01
char A[10];
int len = sizeof(A);
len的结果是10,而不是sizeof(char *)的值4??
在线等待......
...全文
667
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++将int
型
整数转换为
char
类
型
数组
使用snprintf(s,
sizeof
(s), "%d", x),其中s为
数组
名,
sizeof
(s)为
数组
长度,"%d"指定整数类
型
,x为需要进行转换的整数。正确调用可完成整数类
型
转换字符
数组
。 通常不建议使用itoa()方法,因为它是一个非标准的C ...
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语言|用
sizeof
和 strlen 计算字符
数组
的
大小
因为
sizeof
是直接计算从
数组
首地址到 ‘\0’ 之间的
大小
,而strlen是计算有效字符的长度,因此设置了一个对照字符数值。//对照//对照从结果中会发现,当固定了
数组
大小
使用
sizeof
计算时结果就是该
数组
已知的
大小
。当...
sizeof
获取
数组
长度
昨天开始看《算法导论》这本书,...在昨天实现的代码中,用来测试的
数组
intarray[]={5,2,4,6,1,3};是固定的,如果要更换待排序
数组
话,原来程序中的相关变量就会因为
数组
长度的改变要做相应的改变。我想要的就是给定任
sizeof
()求字符
数组
的注意事项
C程序中,用
sizeof
()计算
char
arr[]
数组
的(实际)长度时,得到的结果不是实际的长度,纠结了半天终于找到原因。 测试代码 #include <stdio.h> #include <string.h> int main() { // 定义一个字符
数组
...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章