社区
C语言
帖子详情
C语言能得到数组的长度么?
弼马温
2011-11-24 01:31:33
我看书上好像可以通过sizeof关键字得到数组长度,那为什么一般使用数组的时候要手动传入数组长度呢?比如main函数的参数为main(char** args, int len)菜鸟提问,不要笑我!!!
...全文
872
35
打赏
收藏
C语言能得到数组的长度么?
我看书上好像可以通过sizeof关键字得到数组长度,那为什么一般使用数组的时候要手动传入数组长度呢?比如main函数的参数为main(char** args, int len)菜鸟提问,不要笑我!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luotuo44
2011-11-24
打赏
举报
回复
sizeof是能得到数组的大小,但得不到指针所指向的数组的大小(你可以定义一个指针,然后令其指向一个数组,再用sizeof,会发现不是数组的大小)。用数组作为函数参数时,其实传递的是一个指针。所以,需要手动数组长度。
楼主可以去百度百科查看sizeof词条。
yuxuan555269
2011-11-24
打赏
举报
回复
呃,问个问题还吵上了???
righthook8
2011-11-24
打赏
举报
回复
[Quote=引用 26 楼 sukiida 的回复:]
引用 13 楼 antineutrino 的回复:
12楼典型的装13,不懂装懂
我觉得也是,有话就好好说,要不就飘过
[/Quote]
滚尼玛的,劳资的经验,尼玛应届生一个,爱听不听!!
mars1227
2011-11-24
打赏
举报
回复
把数组全部存为字符串组。。。。 然后换成ASCII码来调用。。
这时候都是以 \0结尾的了。。 哈哈 突发奇想而已
苏客达
2011-11-24
打赏
举报
回复
[Quote=引用 13 楼 antineutrino 的回复:]
12楼典型的装13,不懂装懂
[/Quote]
我觉得也是,有话就好好说,要不就飘过
恩恩古惑
2011-11-24
打赏
举报
回复
因为你main(int argc, char *argv[])中的argv是指针 并不是数组名! 所以sizeof(argv)得到的长度在32位平台上会是4
righthook8
2011-11-24
打赏
举报
回复
我真的没看到在IDE里SIZEOF显示的是蓝色,,,
hondely
2011-11-24
打赏
举报
回复
sizeof 不是函数哦
自己到百科里面看下
FrankHB1989
2011-11-24
打赏
举报
回复
[Quote=引用 21 楼 hondely 的回复:]
string里面有个 函数可以得到长度
C/C++ code
string str;
int len=str.size();
[/Quote]
既然LZ问的是C,就不用.size()了。
hondely
2011-11-24
打赏
举报
回复
string里面有个 函数可以得到长度
string str;
int len=str.size();
FrankHB1989
2011-11-24
打赏
举报
回复
[Quote=引用 17 楼 frankhb1989 的回复:]
VLA什么的不论,C的数组类型是编译期确定的,传参时退化为指针丢失了长度信息,也不会隐式地放到运行时环境中,所以如果要用需要手动传入。编译期根据特定类型计算大小的sizeof在函数内部当然用不了,即使用了拿到的也是指针占的大小,而不是数组的。
[/Quote]
本来我已经三连了,该感谢你断楼么。
我不会显摆我知道它不是函数。我只是囗观一下连这种常识都说不清楚(虽然暂时不清楚是不是只是说不清楚)的假内行而已。
FrankHB1989
2011-11-24
打赏
举报
回复
[Quote=引用楼主 smoke_1988 的回复:]
我看书上好像可以通过sizeof关键字得到数组长度,那为什么一般使用数组的时候要手动传入数组长度呢?比如main函数的参数为main(char** args, int len)菜鸟提问,不要笑我!!!
[/Quote]
另外main的一个常见形式是int main(int argc, char* argv[]);,目测LZ写反了。
righthook8
2011-11-24
打赏
举报
回复
[Quote=引用 16 楼 frankhb1989 的回复:]
引用 15 楼 righthook8 的回复:
引用 13 楼 antineutrino 的回复:
12楼典型的装13,不懂装懂
你可以不传,不传也不会错,我知道你会像楼上说的用sizeof或者什么JB的strlen去求,用吧,那两个函数你随便用,
呆货!!
sizeof是函数?
233
[/Quote]
敢问您老人家想说点什么呢?-----莫不是显摆一下你知道它不是函数就算了吧
FrankHB1989
2011-11-24
打赏
举报
回复
VLA什么的不论,C的数组类型是编译期确定的,传参时退化为指针丢失了长度信息,也不会隐式地放到运行时环境中,所以如果要用需要手动传入。编译期根据特定类型计算大小的sizeof在函数内部当然用不了,即使用了拿到的也是指针占的大小,而不是数组的。
FrankHB1989
2011-11-24
打赏
举报
回复
[Quote=引用 15 楼 righthook8 的回复:]
引用 13 楼 antineutrino 的回复:
12楼典型的装13,不懂装懂
你可以不传,不传也不会错,我知道你会像楼上说的用sizeof或者什么JB的strlen去求,用吧,那两个函数你随便用,
呆货!!
[/Quote]
sizeof是函数?
233
righthook8
2011-11-24
打赏
举报
回复
[Quote=引用 13 楼 antineutrino 的回复:]
12楼典型的装13,不懂装懂
[/Quote]
你可以不传,不传也不会错,我知道你会像楼上说的用sizeof或者什么JB的strlen去求,用吧,那两个函数你随便用,
呆货!!
langyano1
2011-11-24
打赏
举报
回复
main(char** args, int len),这个len不是长度吧
Antineutrino
2011-11-24
打赏
举报
回复
12楼典型的装13,不懂装懂
righthook8
2011-11-24
打赏
举报
回复
C中传Buffer,不要忘记同时传入Bufffer的size!!!
仅仅是好的编程规范中的一条,有你学的,慢慢积累吧,至于为什么这样做,自己写多了就知道作用了
Usopp_Dream
2011-11-24
打赏
举报
回复
strlen和sizeof(数组名)/sizeof(数组类型)都能得到所要的长度
加载更多回复(15)
不定长
数组
输入
C语言
版
C语言
不定长
数组
输入 很简短。。。。。。。。。。。。。。。。。。。。
C语言
如何计算
数组
的
长度
(1)借助sizeof()函数 :#include<stdio.h>int main(){ // 定义一个整型
数组
, 并进行... // 计算
数组
中数据
长度
: // 所有数据的字节数除以一个数据的字节数即为数据的个数 : length = sizeof(arr) / ...
C语言
中
数组
长度
的计算详解
C语言
数组
长度
的大小可以使用: int main() { int arr[] = {1,2,3,4,5}; int length = sizeof(arr)/sizeof(int); printf("the length of arr is %d\n", length); } 2) 在函数调用中计算
数组
的
长度
上述计算
数组
...
c语言
怎么获取
数组
的
长度
,
C语言
怎么获取
数组
的
长度
c语言
中,定义
数组
后可以用sizeof命令获得
数组
的
长度
【可容纳元素个数】,通过传递
数组
名参数到子函数中,以获得
数组
长度
是不可行的。
c语言
中,定义
数组
后可以用sizeof命令获得
数组
的
长度
(可容纳元素个数)如:{int ...
c语言
写i<
数组
长度
,
c语言
怎么实现
数组
长度
自增长
如果我需要通过键盘输入对
数组
a进行赋值,假如我输入3元素,那么将有7个空间被浪费,假如输入想输入十一个元素,
数组
存储空间又不够,请问如何通过代码实现
c语言
数组
长度
的自增长,以解决上面的问题?------解决方案...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章