一个有趣的问题

今天忽然想到一个有趣的问题

剑客(172738246) 09:39:51
有个问题,设计一个返回数组长度的函数
int g(char s[])
例如 int s[20];
g(s) 返回20
蜡笔小新NO1(326238989) 09:40:11
为什么要设计?
蜡笔小新NO1(326238989) 09:40:28
C语言规定数组是必须知道哦长度的
剑客(172738246) 09:41:00
不错,理由呢
□ヘζ龍」(280860494) 09:41:24
从 定义数组的格式看出来
蜡笔小新NO1(326238989) 09:42:04
既然必须知道哦数组长度
蜡笔小新NO1(326238989) 09:42:16
难道你需要设计这个函数?
剑客(172738246) 09:44:08
不是,只是想着好玩,如果要写出这个函数,还真写不出来,原因的是C的数组没有长度这个属性,pascal有的,所以写不出来
剑客(172738246) 09:45:35
所以memcpy 一些函数 里面的都有一个长度参数
蜡笔小新NO1(326238989) 09:46:21
你是你知道源的长度啊
南孚电池<namei815@163.com> 09:53:28
可以用动态内存分配啊
剑客(172738246) 09:54:36
南孚电池<namei815@163.com> 09:53:28
可以用动态内存分配啊

能否说具体一点
南孚电池<namei815@163.com> 09:55:33
我的意思是说数组的长度可以根据你需要来分配   不需要开始就知道长度
南孚电池<namei815@163.com> 09:56:40
用malloc函数啊
剑客(172738246) 09:56:48
你的意思就是new 吧,不过跟 的问题好像无关啊, 问的是这个函数到底可以不可以设计出来?
蜡笔小新NO1(326238989) 09:56:56
char *p ="hello world/n";
int len = strlen(p);
char *q = malloc(len);
memcpy(q,p,len):

 

 

不知道是不是我表达的不行,还是什么!

 

gogle了一下,原文如下

语言也使用字符数组作为字符串。定义一个char a[20],就相当于定义了一个长度不超过20的字符串。Pascal中使用a[0]记录字符串的长度,字符串内容从a[1]开始;但C语言并

 

感觉自己也说错了,pascal的数组真跟我说的一样吗,这边没有delphi,不好试验

 

总结: 设计函数的时候,如果涉及到数组,必定有个长度参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值