wake003 发表于 2022-3-28 23:31:46

谁能帮我看看哪出了问题吗?

#include<stdio.h>
char s(int);
char s(int num)
{
return num*num;

}


int main()
{
int num;
int (*p)(int);
printf("请输入一个数字:");
scanf("%d",&num);
p=s;
printf("%d*%d=%d\n",num,num,(*fp)(num));



return 0;
}


cpp(16) : error C2440: '=' : cannot convert from 'char (__cdecl *)(int)' to 'int (__cdecl *)(int)'
      This conversion requires a reinterpret_cast, a C-style cast or function-style cast
执行 cl.exe 时出错.

a327904410 发表于 2022-3-28 23:44:24

s是char类型函数,你把它赋值给int类型的变量?

大马强 发表于 2022-3-28 23:45:24

问题有
1、变量的声明
2、函数的调用
3、函数返回值类型
你这也太白了{:10_245:}
#include<stdio.h>
int s(int);
int s(int num)
{
return num*num;
}
int main()
{
        int num;
        int p; //
        printf("请输入一个数字:");
        scanf("%d",&num);
        p = s(num);
        printf("%d*%d=%d\n",num,num,p);
        return 0;
}

大马强 发表于 2022-3-28 23:47:08

如果使用指针的话
#include<stdio.h>
#include<stdlib.h>
int s(int);
int s(int num)
{
return num*num;
}
int main()
{
        int num;
        int *p = (int*)malloc(sizeof(int)); //
        printf("请输入一个数字:");
        scanf("%d",&num);
        *p = s(num);
        printf("%d*%d=%d\n",num,num,*p);
        return 0;
}

wake003 发表于 2022-3-29 02:46:36

大马强 发表于 2022-3-28 23:45
问题有
1、变量的声明
2、函数的调用


没办法,马上面试了,这是三年前学的,忘完了{:5_104:}
页: [1]
查看完整版本: 谁能帮我看看哪出了问题吗?