c - 带有数组的指针函数

标签 c pointers

我有一个问题,我有一个函数,但我不明白具体的事情。其功能是:

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/

相关文章:

c - 使用自定义 INF 的微 Controller 的 USB 驱动程序安装问题

c++ - 如何创建一个可以处理 int 和 double 变量并避免范围问题的通用指针?

c - 如何使用指向数组的指针访问 3-d 数组

c++ - 指针 C++ 的内存泄漏

c++ - 在 C/C++ 中分配数组的数组

android - android中 native 网络相关功能随机阻塞

c - C 中的正数和负数程序

c - malloc 和全局变量声明在 C 中将它们的变量分配到哪里?

C 创建带有下一个和上一个指针的链表

c - C 中的结构体指针与数组指针