题目描述
用一个回调函数,打印出 str
的内容
题目来源及自己的思路
来源:鹏哥c语言
相关代码
#include<stdio.h>
void print(char *str)
{
printf("hehe%s",str);
}
void test(void(*p)(char*))
{
printf("test\n");
p("abcdefg");
}
int main()
{
test(print);
//调用test函数,参数是print函数
return 0;
}
你期待的结果是什么?实际看到的错误信息又是什么?
按道理来说,应该是通过 test
函数调用 print
函数,打印出来 heheabcdefg
,但实际会报错
const char * 类型的实参与 char * 类型的形参不兼容;
你理解错了,这个错误说的是 "abcdefg" 是
const char*
,而你的 p 函数定义的是接收char*
,所以才报错,你需要改成:就可以了。