社区
C语言
帖子详情
简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
磨刀匠
2003-07-01 11:06:01
char A[10];
int len = sizeof(A);
len的结果是10,而不是sizeof(char *)的值4??
在线等待......
...全文
830
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语言
sizeof
求结构体
大小
问题
汇总
可以说一直被各类结构体
大小
问题
说困扰,花了大半天时间查了一下资料,现在整理汇总一下。
sizeof
:C语言中判断数据类
型
或者表达式长度符;不是一个函数,字节数的计算在程序编译时进行,而不是在程序执行的过程中才计算出来。 基本数据类
型
的
大小
很好计算,我们主要看一下构造数据类
型
的
大小
,包括
数组
,结构体和共用体。
sizeof
(
char
str[])的
大小
、
sizeof
(
char
*str)
void Func(
char
a[
100
]) { cout<<
sizeof
(a) << endl; // 4 字节而不是
100
字节 } 在C/C++里
数组
作为参数时传递的实际上是指向
数组
第一个元素的指针,因此
sizeof
(str)返回的是指针的
大小
,即4。 注意以下三种形式的参数是完全等价的: 1 2 3 v...
C快排qsort()【
char
*arr[10]、
char
arr[10][10]、
char
arr[10]、struct
型
】、(
char
*)malloc(
sizeof
(
char
*))、
sizeof
qsort()就是C语言中的快排函数,包含在stdlib.h头文件中;函数一共有四个参数,没有返回值。// 代码体 } qsort(arr , n ,
sizeof
(s [ 0 ]) , cmp);1、第一个参数s是一个地址,即参与排序的首地址;2、n是需要排序的数量;3、则是每一个元素占用的空间
大小
;4、指向函数的指针,用于确定排序的顺序。
char
型
指针
数组
和
数组
指针(
char
*a[]和
char
(*a)[])赋值方法
char
型
指针
数组
和
数组
指针赋值方法 指针
数组
和
数组
指针是两个不同概念,你这里给出的定义实例实际上是指针
数组
的定义。 指针
数组
是指所定义
数组
的每个
数组
元素都是一个相应数据类
型
的指针,开设空间的操作可以应用循环语句进行,例如:对于
char
*p[10]; 可以应用 for(i=0;i<10;i++) { p[i]=(
char
*)malloc(
sizeof
(
char
)*N); //为每个指...
指针
大小
sizeof
与引用
大小
的
问题
存放一个地址需要几个字节?答案是和一个 int 类
型
的
大小
相同:4字节。 所以,若有: int* pInt;
char
* p
Char
; bool* pBool; float* pFloat; double* pDouble; 则:
sizeof
(pInt)、
sizeof
(p
Char
)、
sizeof
(pBool)、
sizeof
(pFloat)、
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章