因為m,i是靜態局部變量,靜態局部變量是這樣的:第一次運行子程序時,執行初始化,子程序結束時,靜態局部變量的存儲空間不會被回收,也就是說它們的值會被保存起來。第二次運行子程序時,不再初始化靜態局部變量了,而是直接調用,然而上一次運行后的值被保存下來了,所以就會用第一次的m,i值了
東港網站建設公司創新互聯,東港網站設計制作,有大型網站制作公司豐富經驗。已為東港上千提供企業網站建設服務。企業網站搭建\外貿網站建設要多少錢,請找那個售后服務好的東港做網站的公司定做!
因為第二次調用的時候 你那些判斷條件都走不進去,在while中死循環了?。?!你可以在調用第二次之前,把你那些全局變量都清空一下就可以了。
這個問題很常見,正是因為使用了getchar()函數,getchar()函數只會從標準輸入緩沖區中讀取一個字節,剩下的還留在緩沖區,比如你輸入"a",那么getchar()函數值讀取'a',而不會處理你按下的回車,也就是'\n'還留在標準輸入緩沖區,那么,等第二次調用getchar()的時候,由于緩沖區里還有1個字節的'\n'未使用,故getchar()會使用字符'\n'而不會阻塞等待輸入
建議在第二個getchar()前加上一句:
fflush(stdin);
一個函數只能有一個返回值,指針可以返回多個,例如:
void aaa()
{
int *a,*c;
int a,c;
*a=a;*c=c;
a=b();c=b();
}
下面調用 *a和*c.
擴展資料:
在C語言中,指針的使用非常廣泛,因為使用指針往往可以生成更高效、更緊湊的代碼??偟膩碚f,使用指針有如下好處:
1、指針的使用使得不同區域的代碼可以輕易的共享內存數據,這樣可以使程序更為快速高效;
2、C語言中一些復雜的數據結構往往需要使用指針來構建,如鏈表、二叉樹等;
3、C語言是傳值調用,而有些操作傳值調用是無法完成的,如通過被調函數修改調用函數的對象,但是這種操作可以由指針來完成,而且并不違背傳值調用。
參考資料來源:百度百科-指針 (編程語言中的一個對象)
因為m,i是靜態局部變量,靜態局部變量是這樣的:第一次運行子程序時,zhidao執行初始化,子程序結束時,靜態局部變量的存儲空間不會被內回收,也就是說它們的值會被保存起來。第二次運行子程序時,不再初始化靜態局部容變量了,而是直接調用,然而上一次運行后的值被保存下來了,所以就會用第一次的m,i值了
文章名稱:c語言函數的二次調用 c語言二次函數代碼
本文地址:http://www.yijiale78.com/article10/hhijdo.html
成都網站建設公司_創新互聯,為您提供定制網站、品牌網站制作、自適應網站、微信小程序、企業網站制作、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯