警告:格式'%d'期望类型为'int',但是参数2的类型为'int(*)(int *)'

时间:2019-08-25 02:18:20

标签: c arrays

我尝试创建一个程序,在该程序中主要声明一个数组并加载其元素。 还有一个函数可以计算数组中元素的数量,但是当我想显示结果时,将显示一个内存地址,而不是上面的元素和警告的数量。

代码:

#include <stdio.h>
#include <conio.h>

int countArrayElement(int arr[]);

int main()
{
    int intMyArray[]= {1,2,3,4,6,7};
    countArrayElement(intMyArray);
    printf("The quantity of elements in the array is %d",&countArrayElement);
    getch();
    return 0;
}

int countArrayElement(int arr[])
{
    int count = 0;
    count  = sizeof (arr)/sizeof(int);  // wont work at all, arr is just the first element
    return count;
}

1 个答案:

答案 0 :(得分:2)

错误消息说明了一切。在格式字符串中,%d表示整数值,而您给它提供了指向函数的指针。您想将print更改为参数,实际上是函数调用的结果:

printf("The quantity of elements in the array is %d", countArrayElement(intsMyArray));

用C检索数组中的HTML class names are case insensitive并不像其他语言那么简单。