找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3202|回復(fù): 26
打印 上一主題 下一主題
收起左側(cè)

關(guān)于C語言while循環(huán)的疑問

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:674308 發(fā)表于 2020-1-16 15:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
整個程序只有一個t的定義,無實際值。這個代碼究竟是什么意思?
void Delay(unsigned int t)
{
while(--t);
}
上面四行代碼的t在整個代碼中都沒有實際賦值,所以while執(zhí)行到什么時候?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:282519 發(fā)表于 2020-1-16 18:24 | 只看該作者
比如Delay(1000),就是調(diào)用void Delay(unsigned int t)這個函數(shù),1000會直接替換成t,不知道你理解不理解,不理解只能說明基礎(chǔ)薄弱
回復(fù)

使用道具 舉報

板凳
ID:378182 發(fā)表于 2020-1-16 18:53 | 只看該作者
這是帶參子程序,調(diào)用時要對參數(shù) t 賦值。調(diào)用后子程序循環(huán)對 t = t-1,直到 t=0,退出子程序。
回復(fù)

使用道具 舉報

地板
ID:235200 發(fā)表于 2020-1-16 19:15 | 只看該作者
在調(diào)用時就有值了,如Delay(1000),這樣t的值就是1000,while循環(huán)執(zhí)行1000次后退出
回復(fù)

使用道具 舉報

5#
ID:155507 發(fā)表于 2020-1-16 19:41 | 只看該作者
這是軟件延時,阻塞延時,就相當于CPU在空跑,
1. 新手的程序都是While大循環(huán)里,而且代碼執(zhí)行時間也比較短,這個時候用軟件延時看不出來明顯的差異。

2. 一般不建議使用軟件延時,因為CPU的資源是有限的,軟件延時就相當于CPU在空跑,當程序比較龐大的時候,許多程序處理不過來,根本沒有多余的時間給你去延時。
回復(fù)

使用道具 舉報

6#
ID:686752 發(fā)表于 2020-1-16 20:08 | 只看該作者
unsigned int t為無符號整形,int t 輸入t,t為整形,也就是輸入一個整數(shù);while(--t)的意思是沒循環(huán)一次t-1,當減到0時,循環(huán)結(jié)束。
回復(fù)

使用道具 舉報

7#
ID:686758 發(fā)表于 2020-1-16 20:24 | 只看該作者
當t=0時,就會退出循環(huán)
回復(fù)

使用道具 舉報

8#
ID:686782 發(fā)表于 2020-1-16 21:40 | 只看該作者
函數(shù)定義而已...
實際調(diào)用時根據(jù)你調(diào)用情況會賦值 就像前面樓上幾位說的一樣
回復(fù)

使用道具 舉報

9#
ID:67199 發(fā)表于 2020-1-16 23:33 | 只看該作者
void Delay(unsigned int t)   t 為無符號整數(shù)型形參
實際調(diào)用時void Delay(1000)     1000則為無符號整數(shù) 實參
回復(fù)

使用道具 舉報

10#
ID:686820 發(fā)表于 2020-1-17 02:35 | 只看該作者
void Delay(unsigned int t) 你發(fā)的這段程序是函數(shù)定義。別的地方有調(diào)用這個程序的!比如Delay(100),此時t被賦值,t=100。
回復(fù)

使用道具 舉報

11#
ID:592807 發(fā)表于 2020-1-17 08:35 | 只看該作者
t時型參,當你調(diào)用時就會給他賦值了。比如Delay(100);
回復(fù)

使用道具 舉報

12#
ID:524818 發(fā)表于 2020-1-17 08:40 | 只看該作者
1樓正解,這是函數(shù)定義,在主程序里用時括號里填的數(shù)值就是t的賦值
回復(fù)

使用道具 舉報

13#
ID:282850 發(fā)表于 2020-1-17 09:09 | 只看該作者
這是典型的空循環(huán),也就是延時函數(shù)。
回復(fù)

使用道具 舉報

14#
ID:420836 發(fā)表于 2020-1-17 10:00 | 只看該作者
這是帶參數(shù)的延時子程序,調(diào)用時對參數(shù) t 賦值。循環(huán)執(zhí)行 t = t-1, 直到 t=0,子程序調(diào)用結(jié)束。
回復(fù)

使用道具 舉報

15#
ID:475247 發(fā)表于 2020-1-17 10:20 | 只看該作者
這是形參函數(shù),調(diào)用該函數(shù)時可用實際數(shù)值替換掉t變量
回復(fù)

使用道具 舉報

16#
ID:686963 發(fā)表于 2020-1-17 16:10 | 只看該作者
這是一個子函數(shù),在調(diào)用該函數(shù)的時候,會帶入?yún)?shù),也就是t的值
回復(fù)

使用道具 舉報

17#
ID:687093 發(fā)表于 2020-1-18 12:30 | 只看該作者
執(zhí)行到t = 0;就停止了
回復(fù)

使用道具 舉報

18#
ID:687295 發(fā)表于 2020-1-19 10:13 | 只看該作者
你需要看看C語言,bilibili、墨課上有很多基礎(chǔ)知識視屏
回復(fù)

使用道具 舉報

19#
ID:674308 發(fā)表于 2020-1-19 11:02 | 只看該作者
謝謝各位指導(dǎo),這個知識點已經(jīng)學(xué)到!基礎(chǔ)確實薄弱。在學(xué)習(xí)中。在論壇,找到了組織。
回復(fù)

使用道具 舉報

20#
ID:687381 發(fā)表于 2020-1-19 17:50 | 只看該作者
你要調(diào)用這個函數(shù)時再給t賦值,等t減到0就停了
回復(fù)

使用道具 舉報

21#
ID:93224 發(fā)表于 2020-1-19 18:38 | 只看該作者
那就要看程序默認的初值是多少了
回復(fù)

使用道具 舉報

22#
ID:389856 發(fā)表于 2020-1-20 10:51 | 只看該作者
調(diào)用Delay的時候會賦值t的。例如Delay(5),就把t賦值為5
回復(fù)

使用道具 舉報

23#
ID:679425 發(fā)表于 2020-1-21 10:06 | 只看該作者
調(diào)用時就有值,1和5樓很詳細的分析
回復(fù)

使用道具 舉報

24#
ID:524071 發(fā)表于 2020-1-21 14:45 | 只看該作者
會一直執(zhí)行到t=0的時候,然后會推出while循環(huán)
回復(fù)

使用道具 舉報

25#
ID:609989 發(fā)表于 2020-1-21 18:02 來自觸屏版 | 只看該作者
angmall 發(fā)表于 2020-1-16 19:41
這是軟件延時,阻塞延時,就相當于CPU在空跑,
1. 新手的程序都是While大循環(huán)里,而且代碼執(zhí)行時間也比較 ...

第二點相當贊同。
回復(fù)

使用道具 舉報

26#
ID:688320 發(fā)表于 2020-1-28 14:46 | 只看該作者
這是帶參函數(shù),函數(shù)被調(diào)用時會將實參傳遞給形參,就是在函數(shù)調(diào)用時那個t才會被賦值。
回復(fù)

使用道具 舉報

27#
ID:688433 發(fā)表于 2020-1-28 16:26 | 只看該作者
這是個子函數(shù),簡單來說這個是一個你建立的模型,在main函數(shù)引用時就相當于把這個模型引用到你的主體里面,根據(jù)需要再賦予t實際值。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表