C和指標 (pointers on C)——第一章:快速上手

來源:互聯網
上載者:User

標籤:c   指標   

不太苟同大多數人認為很多程式員沒有幾個學C學的好的,那就多看看這本書。

本人只是作為讀書筆記來寫。有時候會附帶一些題目和解答。

開通此類專欄,既為敲磚引玉,也為自勉,望鼓勵!


第一章:快速上手

我每次都是複習的來寫。我想是這一章,哪怕是上手也需要有一定的C基礎。


總結:提出了stdio.h中一些基本的函數,如scanf(),printf(),getchar(),putchar(),gets(),puts()等io函數。
關於NULL和NUL的區別也說了一些。
NUL也就是字串中的截尾字元‘\n‘,並不存在與預先處理中。
NULL是stdio中定義好的字元,表示指標為空白,為整型0。
EOF也是stdio種定義好的字元,表示為指標指向文檔的結尾。


警告:
1、在scanf函數的標量參數前並未添加&字元。
首先是標量參數,舉個例子,數組元素參數是標量參數。它通過值傳遞來通過main和函數間傳遞。
&符號在這裡是定址。如果是數組參數,它本身是個地址,所以就不需要做定址運算了。
2、機械地把printf函數的格式代碼照搬於scanf函數。
3、在應該使用&&操作符的地方誤用了&操作符。
一個是邏輯操作符,一個是定址。一般細心都可以避免這個問題。
4、誤用=操作符而不是==操作符來測試相等性。
同上,不過這個問題好像犯錯的人更多一些。
尤其是在if、while判斷中經常出現。
如:while(pointer==EOP)


編程提示:
1、使用#include指令避免重複聲明。同時在#include 裡面放置函數的原型。
2、使用#define 指令給常量命名。
3、使用數組下標前先檢查他們的值。
如:ch = getchar(); 
    while(ch != EOF && ch != ‘\n‘)
ch = getchar();
這是個好習慣。
4、在while/if運算式中蘊含賦值操作。
如:
ch = getchar(); 
while(ch != EOF && ch != ‘\n‘)
ch = getchar();
就可以寫成:
while((ch = getchar()) != EOF && ch != ‘\n‘)
;
這樣,就可以消除冗餘語句。你可以理直氣壯地聲稱這種可讀性非常差的代碼技巧應該避免使用。我也可以理直氣壯地告訴你,這是因為你對C不是很熟。
大牛們在讀代碼的時候根本不會出現任何問題。
5、如何編寫一個空迴圈體。
while((ch = getchar()) != EOF && ch != ‘\n‘)
;
這個分號是非常重要的,否則下一句不相關的語句就會被拖入while迴圈。
6、如何進行檢查,確保數組不越界。
比如在存數組中,必需包括以下:
1、如果輸入行結束或者輸入行數組已滿,跳出迴圈break;
2、如果輸出行資料空間不夠,只賦值可以容納的資料;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.