課程
/后端開發
/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語言
2 回答幫忙找錯誤
1 回答幫忙找錯誤。
1 回答幫忙找個錯誤
2 回答求大佬幫忙找找錯誤
2 回答各位大佬,幫忙找一下錯誤
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-12
細節是魔鬼
2016-10-12
所以當numberpeople==1函數為0,即0+2+2+2+2=8
2016-10-12
?age=10的意思是是給age這個變量賦值10,即讓這個人年齡為十歲。age==10的意思是age的值與10這個數字大小相等,因為還沒給age賦值,所以age==10為假,如果先定義int age=10,然后age==10,就為真。系統之所以沒有報錯是因為C語言保護性不夠強,系統認為該假0并沒有得到使用不影響,如果是Java這種安全語言就會報錯