C – 接收指针但接收int的方法

C – 接收指针但接收int的方法,第1张

概述我想知道当一个整数传递给接受指针的函数时,我将如何处理对函数的调用?在我的情况下,hasPlayedInTeam()接受指向Team的指针,但是,收到了一个int.这会导致Q_ASSERT挂起. 另外,我的问题也称为空指针?我的教授在讲座中多次使用过这个术语,但我不确定他指的是什么. //main.cppPerson p1("Jack", 22, "UCLA");Q_ASSERT(p1.has 我想知道当一个整数传递给接受指针的函数时,我将如何处理对函数的调用?在我的情况下,hasPlayedInTeam()接受指向Team的指针,但是,收到了一个int.这会导致Q_ASSERT挂起.

另外,我的问题也称为空指针?我的教授在讲座中多次使用过这个术语,但我不确定他指的是什么.

//main.cppPerson p1("Jack",22,"UCLA");Q_ASSERT(p1.hasPlayedInTeam(0) == false);//person.cppbool Person::hasPlayedInTeam(Team *pTeam) {  bool temp = false;  foreach (Team* team,teamList) {    if (team->getname() == pTeam->getname() {      temp = true;    }  }  return temp;}
解决方法 在你的电话中:

p1.hasPlayedInTeam(0)

整数文字0转换为NulL指针.所以,你实际上并没有“接收”一个整数;你传递一个整数,编译器可以自动将它转换为空指针(给定NulL的定义).

我认为您可以通过断言其参数不是NulL来修复hasPlayedInTeam的定义,或者在传入NulL时返回默认值:

//person.cppbool Person::hasPlayedInTeam(Team *pTeam) {    assert(pTeam!=NulL); //-- in this case,your program will assert and halt

要么:

//person.cppbool Person::hasPlayedInTeam(Team *pTeam) {    if (pTeam == NulL)         return false; //-- in this case,your program will not assert and continue with a sensible (it actually depends on how you define "sensible") return value
总结

以上是内存溢出为你收集整理的C – 接收指针但接收int的方法全部内容,希望文章能够帮你解决C – 接收指针但接收int的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1219557.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存