This question already has answers here:
Closed 10 months ago.
What does getting the address of an array variable mean?
(7个答案)
我想了解数组的行为。请看下面的代码。int的大小是4。
我得到输出:
我理解表达式“
(7个答案)
我想了解数组的行为。请看下面的代码。int的大小是4。
int arr[]={10,9,8,7,6,5};
printf("\nSingle array print=> \n%u || %u || %u || %u",
singlearr, &singlearr, &singlearr + 1);
我得到输出:
2293248 || 2293248 || 2293272
我理解表达式“
singlarr
”和“&singlearr
”,但当我执行“&singlearr + 1
”时,为什么它会给出2293272的输出,即地址2293248(2293248+24)之后的24字节? 最佳答案
&arr是指向整个数组的指针。所以,如果我们移动&arr 1个位置,它将指向下一个n个元素块。
如果数组基址是b,&arr+1将b + (n * 4)
这里,n=6,b=2293248
所以,&arr+1 = b+(n*4) = 2293248 + (6*4) = 2293272
10-08 10:49