LinuxC语言使用数组的几个常见问题
正文
(1)数组的下标总是从0开始吗?
是的
a[MAX] 表示的元素是从a[0] 到 a[MAX - 1] , a[MAX]是有效的地址,不过不是数组中的元素
(2)可以使用数组后边的一位元素的地址吗?
可以,但是应该尽量避免,因为可能会破坏地址中的数据
(3)小心对待数组后边的元素地址
所以要小心对待数组后边的元素地址
(4)数组作为参数传递给函数时,可以通过sizeof 得到数组的大小吗?
不可以
做参数时得不到数组的大小,因为传递的是数组的第一位元素的地址
引深
怎么告诉函数数组大小呢?
第一种方式是将数组和表示数组的大小的值一起传递给函数
例如,memcpy函数
memcpy(dest,source,MAX);
第二种方式是引入规则来结束一个数组
比如以空指针结束的字符指针数组,空指针告诉函数什么时候结束
void printMany