我有一个问题,我有一个函数,但我不明白具体的事情。其功能是:
int F( int* x , int n ){
int i , m=0
for (i=0;i<n; i++){
m=x[ i ] + m;
}
return m * m ;
}
我使用指针和整数调用该函数。后来我做了一个“for”,但我不明白这句话:
m=x[ i ] + m;
因为 x 是指针而不是数组。
你能帮我一下吗?
然后x指向内存位置,然后指向+1。例如,如果我用
调用该函数n=10
x=&n
F(x,n)
该函数返回一些奇怪的东西。
X指向内存到n的位置,稍后又指向内存到n+1的位置?
最佳答案
由于 x 是一个指针,因此当您将数组传递给函数时,x 指向数组的第一个元素。由于数组是连续分配的内存,因此可以使指针指向数组的连续元素。这就是为什么
m=x[i]+m
x[i] 表示从数组第一个元素开始的第 i 个索引
main()
{
int x[10]={1,2,3,4,5,6,7,8,9,10},sum;
sum=function(x,10);
return 0;
}
该函数将数组发送给函数,其中10为数组的大小
关于c - 带有数组的指针函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376368/