C语言(标题不知道怎么写)

问题遇到的现象和发生背景

改错

问题相关代码,请勿粘贴截图
#include <stdio.h>
void main() {
    
    //程序完成以下功能主函数完成数组的初始化操作
//函数完成数组元素逐个输出操作,p为指针变量
    int a[10] = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    output(a, 10);
}
void output(int b, int n)
{
    int n;
        int* p;
    for (p = &b; p <  (b + 10); p++)
        printf("%d", p);
}


运行结果及报错内容 ((Visual Studio 2022))
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C2075    “a”: 初始化需要带括号的初始值设定项列表    
消息    lnt-uninitialized-local    未初始化本地变量。        11    
警告    C4013    “output”未定义;假设外部返回 int    5    
错误    C2371    “output”: 重定义;不同的基类型        7    
错误    C2082    形参“n”的重定义    C语言    9    
警告    C4047    “<”:“int *”与“int”的间接级别不同    11    
警告    C4477    “printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“int *”
警告    C4313    “printf”: 格式字符串中的“%d”与“int *”类型的参数 1 冲突    C语言        


我的解答思路和尝试过的方法

int=output(增加报错了)

我想要达到的结果

程序完成以下功能主函数完成数组的初始化操作
output函数完成数组元素逐个输出操作,p为指针变量

根据你代码修改的:

#include <stdio.h>

void output(unsigned long long b, int n)
{
    int* p;
    for (p = (int *)b; p < (int*)b + n; p++)
        printf("%d ", *p);
} 
void main() {
    //程序完成以下功能主函数完成数组的初始化操作
    //函数完成数组元素逐个输出操作,p为指针变量
    int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    output((unsigned long long)&a, 10);
}

```c

#include <stdio.h>
void output(int *a, int n)
{
    for (int i = 0; i < n; ++i)
        printf("%d", *(a + i));
}

int main(int argc, char *argv[]) {
    //程序完成以下功能主函数完成数组的初始化操作
    //函数完成数组元素逐个输出操作,p为指针变量
    int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int n = sizeof(a) / sizeof(a[0]);
    output(a, n);
}