在c语言中,数组名做实参,这句话怎么理解?为什么数组名作为实参时表示的是整个数组?
答案:5 悬赏:0
解决时间 2021-02-10 09:16
- 提问者网友:离殇似水流年飞逝
- 2021-02-09 09:11
在c语言中,数组名做实参,这句话怎么理解?为什么数组名作为实参时表示的是整个数组?
最佳答案
- 二级知识专家网友:都不是誰的誰
- 2021-02-09 10:42
ANSI C语言标准规定: "数组名等价于其第一个元素的地址!!!"
void func(int va[])等价于
void func(int *va)
va[0] 等价于 *(va)
va[1] 等价于 *(va+1)
float average(float a[]) //可以, float *a也是一样
sum=sum+(*(a+i));// 等价于sum = sum + a[i];
至于楼上说的#include后面加不加空格的问题---不加也没关系.
main函数的返回值--如果声明为int main()那么是必须的, void main()则不需要.
C++语法格式比较自由, 操作符和标识符直接的空格都可以不加, 全部代码都写成一行也没关系.
只不过不够美观. 写的代码要优雅!
void func(int va[])等价于
void func(int *va)
va[0] 等价于 *(va)
va[1] 等价于 *(va+1)
float average(float a[]) //可以, float *a也是一样
sum=sum+(*(a+i));// 等价于sum = sum + a[i];
至于楼上说的#include后面加不加空格的问题---不加也没关系.
main函数的返回值--如果声明为int main()那么是必须的, void main()则不需要.
C++语法格式比较自由, 操作符和标识符直接的空格都可以不加, 全部代码都写成一行也没关系.
只不过不够美观. 写的代码要优雅!
全部回答
- 1楼网友:厭世為王
- 2021-02-09 15:26
数组名是常量。但有些地方会退化为指针。比如传参。
int *p = 0;
int a[20];
sizeof(a) = 80;
void test(int a[20])
{
sizeof(a) = 4;
}
- 2楼网友:伤口狠精致
- 2021-02-09 14:33
没问题 形参没必要是数组 还可以是指针啊
- 3楼网友:滚刀废物浮浪人
- 2021-02-09 14:00
数组名做实参也是地址,所以形参要配套啊,形参里的数组不是真的一个数组,其实质上还也是个指针
- 4楼网友:深街酒徒
- 2021-02-09 12:20
数组名就是个地址,地址传过去,不就能访问到数组了。
太好理解了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |