55问答网
所有问题
int a[10]={1,2,3,4,5,6,7}; fun(&a[3]);为什么是把元素a[3]的地址赋给函数fun?它的地址又是什么
如题所述
举报该问题
推荐答案 2012-09-16
a是数组的首地址,a[3]是以a为首地址的第4个元素,&是取地址符,所以&a[3]是取数组的第四个元素的首地址,值等于a+sizeof(int)*3;在写法上是a+3,编译器会自动判断类型,将其解释成a+sizeof(int)*3
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/cLLQ88e4G.html
其他回答
第1个回答 2012-09-16
&是取地址符,是取的a[3]在内存中的存储位置,它的值是内存号,不是固定的。
第2个回答 2012-09-16
&是取地址运算符,&a[3]表示取a[3]的地址,a[3]的地址就是4所在存储单元的地址
相似回答
...{b=*k+b;return(b
);}
main() {
inta
〔
10]
,
{1,2,
答:
第一次循环,传给
fun的
是&a[2],即数组第三个元素(值为
3)的地址;
这时,b是2,b=*k+b就是相当于b=b+3,所以b变成了5,返回b,这时在main函数中,b
=fun(&a[
i])+b;相当于b=5+b;(注意,此时b的值已是5),所以b变成
10,
输出10 第二次循环,传给fun的是
&a[3],
即数组第四个...
...{ b=*k+b;return(b
);}
main () {
int
a[10]={1,
答:
我给你说10吧 28也是一样的 首先b =
2;
之后
fun函数
传过去了
a[2]的地址
就是3 ,经过运算函数返回了b的值是5 ,在接着就是 b
=fun(&a[
i])+b;这句 最后b就被改写成了10了 最后输出就是10 第二次循环b的值是10 不是2 这个关键的 那28也就是这个道理了。明白了吧!!...
int
a[10]={1,2,3,4,5,6,7
,8,9,0},*p; p=a; printf("%x\n",p
);
prin...
答:
p是int *型指针。所以 p+n(n为整数)p实际
的地址
值为(
(int)
p)+sizeof(int)*n 这里 输出的也就是 0x194+sizeof(int)*9 注意,这里的194是16进制的。因为是0x输出。如果是sizeof(int)
=4
也就是32/64位系统,那么输出为 0x194+4*9=0x194+0x24=0x1B8 输出1b8 如果是sizeof(int) ...
int
a[10]={1,2,,3,4,5,6,7
,8,9,0
};
for(i=0;i<10;i+=2
;)
fun(a[
i...
答:
fun函数
参数你加了引用没?如果没加引用,相当于交换的是临时变量的值 实际的值并没有交换
...return(b
);}
main()
{int
a[10]={1,2,3,4,5,6,7
,8},
答:
{ b=*k+b;return (b
);}
main(){
int
a[10]={1,2,3,4,5,6,7
,8},i;for(i=2;i<4;i++){b=
fun(&a[
i])+b; printf("%d ",b);} printf("\n"); } 这里要注意的就是b为全局变量,还有就是 i 从2开始 所以 b=3+2=5,b=10;b=4+10=14,b=28 输出 10 28 ...
大家正在搜
int a[10]={10*1}
int a[10],*p=a;
已知int a[10],*p=a
int n=5,a[n]
数组a[10]中有几个元素
int a[4][4]
int a[3][3]
若有说明inta10 则对a数组
int a[10]
相关问题
简单的c语言 { int b[10]={1,2...
int a[10]={1,2,,3,4,5,6,7,8,9,...
在执行int a [][3]={1,2,3,4,5,6};语...
#include<stdio.h> main() { int...
C语言的数组问题{a[0]=a{1};} main() {i...
#include "stdio.h" main( ) ...
int a[5] = (1,2,3,4,5) 什么意思 详细...
#include<stdio.h> int b=2; int...