1樓:
前加 ++i;(i=i+1) 先自加在參與運算 如 i=1; c=++i; 先++i; i=2;再c=i; 最後c=2
後加 i++;(i=i+1) 先參與運算 後自加如 i=1;c=i++; 先將c=i; c=1; 再i自加1;i=2;
--和++一樣
na1=10;
nb1=(na1++)+(na1++)+(na1++);
這個na1++ 先na1參與運算 nb1=na1+na1+na1; nb1=30; 在na1自加 na1自加了三次所以na1=13;
na1=10;
nb1=(++na1)+(++na1)+(++na1) ; 這種就比較麻煩點
++na1先自加在運算
先第乙個++na1後na1的值變為11;這時第乙個括號內是變數na1(記住這句話),
然後第二個括號內++na1, na1的值變為12;
由於第乙個括號內還是"變數na1"所以這時第乙個括號內的值是12而不是11了,
即nb1=12+12+(++na1);(這一步懂不??)
然後先算na1+na1 再算 +(++na1)
即nb1=24+(++na1);所以nb=24+13=37;(na1=12自加後變13 所以是24+13)
接下來的自加分析分析
c語言基礎問題求教
2樓:
int main(void)
即將你程式中的if(ch>='a'&&ch<'y')改為if(ch>='a'&&ch<'x')即可
3樓:
問題在於你輸出完字元的時候要回車。回車就會在stdin輸入緩衝區中新增乙個\n,
while第乙個迴圈找到你輸出的字元執行完第二個迴圈將你的\n讀入ch了。
迴圈結束後清空一下輸入緩衝區:
scanf(" %[^\n] "); //將不是\n的字元讀出來scanf(" %*c "); //將最後乙個字元讀出來。
加上面兩行就可以清空緩衝區。
4樓:匿名使用者
#include
void main( )
求c語言基礎教程
c語言剛剛入門,求大神指教。
求教:c語言與c++哪個更適合初學者入門?
5樓:金色的蒲公英
初學者推薦學c,因為c是一切其他高階程式語言的基礎,大部分目前的程式語言都是或多或少借鑑於c的,把c的思想學好了其他的就比較簡單了,不推薦一開始學vb或者易語言,學這兩個或許會比較簡單,但是對於長久的學習是相當的不利的
6樓:匿名使用者
當然是c了,c 是c++的子集,初學者直接學習c++比較複雜。而且學好c後可以給學習c++打下基礎,因為c++完全相容c。
7樓:匿名使用者
c是適合初級者,學會才能學習c++,c言語用於遊戲程式設計,軟體程式設計之類的一種語言,當時學了一點點,還要學什麼變數,陣列之類,其他不是很懂。
8樓:豬料鍋鍋
都不好學,你沒基礎的話 ,相對來說都一樣,c語言面向的東西廣,但c++可以寫的更完美。如果你真要學,學c++吧 ,學會很好。c語言有點out
9樓:匿名使用者
c++是目前最難的語言了。。c是基礎 c++也包含c 看自己情況,建議先學好c
10樓:匿名使用者
c語言更適合初學者,c++是建立在c語言之上的,功能更強,但如果把吧c語言學好,在學c++就容易多了!
11樓:匿名使用者
c 是基礎,c++是高階,c語言基礎打好了,學其他的也相對容易,只要思想學會了,學其他的不過是有點語法不同罷了。
c語言 選擇 求教 關於指標,C語言 選擇 求教 關於指標
樓上說的不對,變數宣告了當然是可以取位址的,是可以用 的,1 是錯的是因為int a,p,q,p q a p q a前面是個逗號,也就是說,先宣告int p,後面又宣告 int p,也就是將變數p宣告了兩次不同型別,所以是不對的,4 是對的,所以選d 好吧,我說的樓上樓上。全部都是錯的,這一點是完全...
c語言基礎問題
字串的長度與字串在記憶體中所佔的空間是不一樣的。c語言規定,字串在記憶體中儲存時,以 0 作為結束標誌。字串的長度不包括 0 所以字串a的長度是14。15是該字串在記憶體中所佔的位元組數,也就是說,必須是15個位元組才能儲存這個字串。補充一點 你用sizeof 測試a,結果是15 sizeof測的是...
求教!一道C語言題目,求教一道c語言題,求詳細過程
你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...