c - 如何使用地址在函数中创建新变量
问题描述
当我使用主数组的基地址创建一个新数组时,我会这样写:
main()
{
int a[]={0,1,2,3,4,5,6,7,8,9};
display(a);
}
display(int anew[])
{
int i;
for(i=0;i<10;i++)
printf("%d ",anew[i]);
}
为什么在尝试使用这样的地址创建新的 int 变量时我不能做同样的事情?
main()
{
int a=7;
display(&a);
}
display(int b)
{
printf("%d ",b);
}
解决方案
因为display(int anew[])
与 相同display(int *anew)
但又display(int *b)
不同display(int b)
。在 C 中,当传入函数时,数组“退化”为指针(指向第一个元素)。整数不会发生这样的事情(只有数组和函数)。
推荐阅读
- android-studio - 开发服务器返回响应错误代码:500 in react native 0.56
- node.js - sequelize.js 关联访问器
- java - 通过firebase google-signin检索用户名和电子邮件时调用onResume()时出现空对象引用异常
- javascript - 在javascript中将带有时区的日期时间转换为UTC
- javascript - 如何使星期一只能从odoo中的canlendar中选择?
- r - 使用 lme4/R:从 glmer 输出计算 OR
- asp.net - 网站访问者计数在服务器(云窗口服务器)上不起作用。如何修复它?
- google-apps-script - doGet() 的配额限制
- python - 添加为子目录时找不到导入
- python - 奇怪的 Python 日期比较行为