Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6个月前关闭。
                                                                                            
                
        
我尝试创建一个程序,在其中我主要声明一个数组并加载它的元素。
还有一个函数可以计算数组中元素的数量,但是当我想显示结果时,会出现一个内存地址,而不是上面的元素和警告数量。

代码:

#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;
}

最佳答案

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

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


用C语言在数组中检索number of elements并不像其他语言那么简单。

关于c - 警告:格式'%d'期望类型为'int',但是参数2的类型为'int(*)(int *)',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57642774/

10-16 20:36