LinuxC语言使用数组的几个常见问题
【摘要】
LinuxC语言使用数组的几个常见问题
正文(1)数组的下标总是从0开始吗?(2)可以使用数组后边的一位元素的地址吗?(3)小心对待数组后边的元素地址(4)数组作为参数传递给函数时,可以通过siz...
LinuxC语言使用数组的几个常见问题
正文
(1)数组的下标总是从0开始吗?
是的
a[MAX] 表示的元素是从a[0] 到 a[MAX - 1] , a[MAX]是有效的地址,不过不是数组中的元素
(2)可以使用数组后边的一位元素的地址吗?
可以,但是应该尽量避免,因为可能会破坏地址中的数据
(3)小心对待数组后边的元素地址
所以要小心对待数组后边的元素地址
(4)数组作为参数传递给函数时,可以通过sizeof 得到数组的大小吗?
不可以
做参数时得不到数组的大小,因为传递的是数组的第一位元素的地址
引深
怎么告诉函数数组大小呢?
第一种方式是将数组和表示数组的大小的值一起传递给函数
例如,memcpy函数
memcpy(dest,source,MAX);
第二种方式是引入规则来结束一个数组
比如以空指针结束的字符指针数组,空指针告诉函数什么时候结束
void printMany(char *string[])
{
int i;
i = 0;
while(string[i] != NULL)
{
puts(string[i]);
++i;
}
}
C语言程序员常用指针来代替数组下标,通常会将上述函数编写的更隐蔽一些
void printMany(char * strings [])
{
while(*strings)
{
puts(*strings++); //相当于while(*strings != NULL)
}
}
在写函数注释的时候最好写明如何获取数组参数的大小,不建议直接写具体数字
关注我
我的首发平台是【CodeAllen】,欢迎关注并回复“1024”进入资料群获取免费学习资料
文章来源: allen5g.blog.csdn.net,作者:CodeAllen的博客,版权归原作者所有,如需转载,请联系作者。
原文链接:allen5g.blog.csdn.net/article/details/108307228
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)