c语言程序设计中哪些是按值传递,哪些是按地址传递?
展开全部
其实C语言中函数参数的传递 全 是 值传递
所谓的 地址 传递,只不过是程序员那么称呼他们而已
比如函数: int func(int input);
如果我把 input当做普通值使用( 例如:printf("%d\n",input); )它就是一整形
如果我把 input当做一指针使用( 例如: *((int*)input) = 5; )它就是一指针,
但是你自己要明白:
1.调用函数传的是什么值,用于什么作用,
2.被调用函数中如何使用这个参数
所谓的 地址 传递,只不过是程序员那么称呼他们而已
比如函数: int func(int input);
如果我把 input当做普通值使用( 例如:printf("%d\n",input); )它就是一整形
如果我把 input当做一指针使用( 例如: *((int*)input) = 5; )它就是一指针,
但是你自己要明白:
1.调用函数传的是什么值,用于什么作用,
2.被调用函数中如何使用这个参数
展开全部
如果实际参数是数组名或指针那就是地址传递,否则就是值传递,比如:
int a[5],*p=a;
fun(a); /* 这里把数组名作为参数传递,就是地址传递了 */
fun(p); /* 同理,这里传递的是指针p,所以也是地址传递了 */
fun(a[3]) /* 这里把数组元素a[3]作为实际参数,所以是值传递了 */
int a[5],*p=a;
fun(a); /* 这里把数组名作为参数传递,就是地址传递了 */
fun(p); /* 同理,这里传递的是指针p,所以也是地址传递了 */
fun(a[3]) /* 这里把数组元素a[3]作为实际参数,所以是值传递了 */
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不懂你的意思,能不能详细点
追问
例如
按值传递:结构体…
按地址传递:数组…
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询