c语言中有关main的问题,c语言小问题
2008-03-13
while語(yǔ)句
void main(){
int a=0,n;
printf("\n input n: ");
scanf("%d",&n);
while (n--)
printf("%d ",a++*2);
}
do-while語(yǔ)句
void main(){
int a=0,n;
printf("\n input n: ");
scanf("%d",&n);
do printf("%d ",a++*2);
while (--n);
}
(為什么轉(zhuǎn)換后,n--變成了--n)
自增運(yùn)算符 ++ 使操作數(shù)的值增 1,其操作數(shù)必須為可變左值。++ 可以置于操作數(shù)前面,也可以放在后面。例如:
++n ;
n++ ;
這兩個(gè)語(yǔ)句產(chǎn)生的結(jié)果都是使 n 增 1,可以說(shuō)沒(méi)什么區(qū)別。 使用以下語(yǔ)句得到的效果也是一樣的:
n = n + 1 ;
盡管上面兩個(gè)語(yǔ)句中,++ 前置和后置沒(méi)有區(qū)別。但是,++ 前置和后置其實(shí)是有區(qū)別的。例如:
int n = 1, post, pre;
post = n++;
pre = ++n;
對(duì)于 post = n++; 這個(gè)語(yǔ)句,post 得到 n 自增前的值,因?yàn)?n++ 的值為 1。 也就是說(shuō),這個(gè)語(yǔ)句執(zhí)行完后,post 的值是 1,而 ...全部
自增運(yùn)算符 ++ 使操作數(shù)的值增 1,其操作數(shù)必須為可變左值。++ 可以置于操作數(shù)前面,也可以放在后面。例如:
++n ;
n++ ;
這兩個(gè)語(yǔ)句產(chǎn)生的結(jié)果都是使 n 增 1,可以說(shuō)沒(méi)什么區(qū)別。
使用以下語(yǔ)句得到的效果也是一樣的:
n = n + 1 ;
盡管上面兩個(gè)語(yǔ)句中,++ 前置和后置沒(méi)有區(qū)別。但是,++ 前置和后置其實(shí)是有區(qū)別的。例如:
int n = 1, post, pre;
post = n++;
pre = ++n;
對(duì)于 post = n++; 這個(gè)語(yǔ)句,post 得到 n 自增前的值,因?yàn)?n++ 的值為 1。
也就是說(shuō),這個(gè)語(yǔ)句執(zhí)行完后,post 的值是 1,而 n 的值變成 2。而 pre = ++n; 這個(gè)語(yǔ)句,pre 得到 n 自增后的值,因?yàn)?++n 的值為 3。也就是說(shuō),這個(gè)語(yǔ)句執(zhí)行完后,pre 的值是 3,n 的值也是 3。
總之,無(wú)論前置還是后值,++ 都會(huì)使其操作數(shù)的值增 1。不同的是,++ 前置時(shí),自增表達(dá)式(如 ++n)的值等于其操作數(shù)自增后的值;++ 后置時(shí),自增表達(dá)式(如 n++)的值等于其操作數(shù)自增前的值。
例如:
int n = 5, post = 1, pre = 1;
pre = ++n + pre; // 運(yùn)算結(jié)束后 pre 為 7,n 為 6
n = 5;
post = n++ + post; // 運(yùn)算結(jié)束后 post 為 6,n 為 6
上例中,++n 的值等于 n 自增后的值,即 6,所以 pre 最后得到的值為 7。
n++ 的值等于 n 自增前的值,即 5,所以 post 最后得到的值為 6。
----------------------
搞清楚了么 這樣的話
設(shè)n=3
while(n--)
{
}
2 1 [0]
do
{
}while(--n)
2 1 [0]
。收起
總結(jié)
以上是生活随笔為你收集整理的c语言中有关main的问题,c语言小问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自学python在家怎么上班_【经验分享
- 下一篇: dir结构体 linux_Linux下D