亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 問(wèn)個(gè)C goto問(wèn)題 [打印本頁(yè)]

作者: FinalBSD    時(shí)間: 2009-03-19 10:18
標(biāo)題: 問(wèn)個(gè)C goto問(wèn)題
實(shí)在不明白goto
#include <stdio.h>

int main(void)
{
        int i=0;
        int j=1;

        if(i)
                if(j > 10)
                        goto hello2;


hello:
        fprintf(stderr, "Hello, C!\n");
        return;
hello2:
        fprintf(stderr, "Hello, Perl!\n");
        return;
hello3:
        fprintf(stderr, "Hello!\n");
        return;
}


問(wèn)題一: 這里為什么執(zhí)行了hello這個(gè)label?我怎么覺(jué)得不應(yīng)該執(zhí)行任何label
問(wèn)題二:一個(gè)label怎么樣算結(jié)束?也就是label后面如果想加入主程序的代碼(不屬于label的范圍)是否可以?

[ 本帖最后由 FinalBSD 于 2009-3-19 10:20 編輯 ]
作者: alexhappy    時(shí)間: 2009-03-19 10:22
1,因?yàn)榍懊娴奶D(zhuǎn)條件不滿足,所以繼續(xù)往下執(zhí)行直至第一個(gè)return;
2,可以,在主程序代碼的return后加label,不過(guò)如果想執(zhí)行完label再繼續(xù)執(zhí)行主程序代碼記的跳回來(lái)

汗,所以說(shuō)不鼓勵(lì)使用goto。。。
作者: xuxingyu    時(shí)間: 2009-03-19 10:24
條件都不成立,應(yīng)當(dāng)順序執(zhí)行啊
作者: FinalBSD    時(shí)間: 2009-03-19 10:26
哦,謝謝樓上2位,我以為label里面的代碼必須有前面滿足的條件才會(huì)被執(zhí)行,如果不滿足就當(dāng)略過(guò)。第二個(gè)問(wèn)題還不是很明白,呵呵
作者: prolj    時(shí)間: 2009-03-19 10:54
hello 是缺省情況下執(zhí)行的
一個(gè) label 在遇到下一個(gè) label 開(kāi)始的時(shí)候結(jié)束。如果后面的 return ,就代表這個(gè) label 后面就是整個(gè)程序的結(jié)束了,此外還可以跟 break 等各種語(yǔ)句,但是結(jié)束一個(gè) label 的只有另一個(gè) label 或者程序結(jié)束。
作者: net_robber    時(shí)間: 2009-03-19 11:06
原帖由 FinalBSD 于 2009-3-19 10:26 發(fā)表
哦,謝謝樓上2位,我以為label里面的代碼必須有前面滿足的條件才會(huì)被執(zhí)行,如果不滿足就當(dāng)略過(guò)。第二個(gè)問(wèn)題還不是很明白,呵呵

lable只是一個(gè)位置的標(biāo)記,沒(méi)有其他用處

因此,一般被用做跳轉(zhuǎn)的目標(biāo)

lable不是函數(shù),因此它沒(méi)有結(jié)束的概念

但是lable有一個(gè)概念:"后面的語(yǔ)句"
作者: gawk    時(shí)間: 2009-03-19 11:08
hello肯定是上面條件不滿足goto條件,然后順序執(zhí)行的啦
作者: maxxfire    時(shí)間: 2009-03-19 11:29
label就是一個(gè)地址標(biāo)識(shí)嘛。。不過(guò)是在函數(shù)體內(nèi)的。。相當(dāng)于short jmp
作者: FinalBSD    時(shí)間: 2009-03-19 12:03
了解了,謝謝各位。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2