- 论坛徽章:
- 0
|
本帖最后由 keytounix 于 2011-12-17 17:19 编辑
VertexType u;
strcmp(u,G->vex[0]); //此处出错,原因是不能将u从char型转换为const char*型
strcmp(const char*,const char*)
很明显你这个错了
strcmp()是用来比较俩个字符串的
所谓字符串数组的意思
在存储方式这个角度可以理解成是以'\0'结束的一段存储
你U是一个字符变量,怎么可以放到这个函数里面去用呢?
懂了?
如何 比较俩个字符,这个,知道的吧?
2
void BFSTraverse(AMLGraph G,Status(* Visit)(VertexType v))
我想你还是没看清楚 Status (* Visit)(VertexType v)) 这个代表的是什么
这个意味着 参数类型是一个指向函数的指针
这个函数 返回值是Status 型,
他有一个输入参数
输入参数类型是VertexType
而你在调用时
BFSTraverse(G,Visit());
Visit()这个 很明显 是 一个 Status类型的值
而声明中的是指向函数的指针,也就是说类型不匹配
懂不?
我洗个例子给你
Status visit_method(VertexType v)
{
////
}
typedef Status (* visit_fun_t)(VertexType ));
visit_fun_t pfun= &visit_method;
BFSTraverse(G,pfun);
看到没?
这样调用的
以上代码 是个人理解做出来的
也没有通过测试
如有错误
欢迎指出
谢谢 |
|