课程
/后端开发
/C
/C语言入门
为什么会得到8,少的10去哪里了
2016-10-12
源自:C语言入门 5-9
正在回答
细节是魔鬼
#include <stdio.h> int getAge(int numPeople) { int age; if(numPeople==1) age=10;//这里的错误!! else age =getAge(numPeople-1)+2; return age; } int main() { int fifthAge = getAge(5); printf("第5个人的年龄是%d岁", fifthAge); return 0; }
qq_Davidbeckham_03722434 提问者
所以当numberpeople==1函数为0,即0+2+2+2+2=8
age=10的意思是是给age这个变量赋值10,即让这个人年龄为十岁。age==10的意思是age的值与10这个数字大小相等,因为还没给age赋值,所以age==10为假,如果先定义int age=10,然后age==10,就为真。系统之所以没有报错是因为C语言保护性不够强,系统认为该假0并没有得到使用不影响,如果是Java这种安全语言就会报错
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
1 回答帮忙找错误。
2 回答帮忙找错误
1 回答帮忙找个错误
2 回答求大佬帮忙找找错误
2 回答各位大佬帮忙找一下错误