關于C編程的一點感受

剛畢業的時候用了兩個多月的C語言編程,總的來說對它還是很有感受的,C是一個過程式語言,沒有像C++,Java等OOP語言這樣那樣的一系列的規則和限制;它比較靈活,簡潔,高效;這些是給我的印象最深的。這是很久以前寫的東西了,現在貼出來,希望對正在學習C語言的人有所幫助。

關于C編程的一些感受。

a.現在寫程序的人很多,但大部分都是用的高級語言,其實一個優秀的程序員,一個優秀的軟件工程師,都應該從底層做起,例如從匯編,從Dos;就像我的一個領導說的那樣,計算機像一個海洋,而硬件就是海底,匯編和Dos是海床,是它們支撐了這個龐大的海洋;而高級語言則如同海里的船,等我們有了基礎再去造各種各樣的船那就很簡單了。

b. 由于我們寫的程序不能只有自己一個人來讀,因此寫代碼期間移一定要有加詳細注釋的習慣,這樣既可以增強程序的可讀性,方便與別人交流合作;也會為自己調試程序帶來方便。加注釋要盡量用英文,因為有的編譯器可能不支持漢字,例如Turboc,BorlandC++。

c . 指針是C語言的核心,因此在使用它時一定要格外小心,使用它時要盡量這樣定義char p[],而不用這種形式 char * p; 后一種定義有時會給你帶來意想不到的麻煩和錯誤。

d. 對于我們這些剛入門的人來說,寫程序一定要養成良好的風格:例如函數定義,變量聲明要讓人們很容易能聯想到它的作用,大括號上下要嚴格對齊,語句和它的子集語句要有明顯的間隔,通常以一個Tab鍵的距離為準;等等這些吧。

e. 如果有能力的話,自己定義函數,而不是每次都被動的去使用編譯器提供的庫函數,因為我覺得使用自己定義的函數更放心。C++里面就不是這樣了,在C++里面則要求盡量使用它自己的類庫,而不是自己重新定義。

f. 你的東西做出來以后,一定要請多個人去調試,因為人們往往受定性思維的限制,這使得有些潛在的異常你很難發現,但別人也許會輕而易舉的找到它,從而能幫你盡快完善你的程序。

g. 寫程序一定要注意它的可擴充性和通用性,例如同樣的一個繪制編輯框函數,有的可以繪制很多種不同大小的框,而有的則只能畫固定長寬的框,這就是區別;所以不論寫什么函數都要考慮它的通用性,定義好入口參數。

//附加:如果想以后轉向C++或java編程的話,建議C語言不要學的太精,因為有這樣一句話“C語言學的越精,就越不容易發揮C++語言的優勢”。^_^!

回復:
寫的還可以,和我的想法差不多。不過有些觀點我不敢拘同:

1、指針很簡單,就是一個地址而已,懂匯編都知道,那是一種內存尋址方式。char[] szText 和 char* pText,我更喜歡后者,因為它更靈活。[]只是一個數組而已,數組是一經分配就不能再賦值的,而*才是指針。它可以用malloc和free創建動態的內存分配。

2、這一句:“加注釋要盡量用英文,因為有的編譯器可能不支持漢字,例如Turboc,BorlandC++。”。我也提倡加釋時盡量用英文,但你似乎可能打錯字了吧?編譯器是不會解釋注釋的,只有在源碼編輯器環境中,才有這一說法。所以你應該說“……因為有的編輯器……”


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452179.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452179.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452179.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何打造高效的多任務、高并發的網絡服務器系統?

同一個功能的軟件,不同的團隊,不同工程師去實現,肯定是千差萬別,甚至從根本上完全不同。所以軟件開發在未來很長時間內仍然是一項工匠的手工勞動,尤其像多任務,高并發,偏底層這種對實現技巧比較…

BZOJ.2780.[SPOJ8093]Sevenk Love Oimaster(廣義后綴自動機)

題目鏈接 \(Description\) 給定n個模式串,多次詢問一個串在多少個模式串中出現過。(字符集為26個小寫字母) \(Solution\) 對每個詢問串進行匹配最終會達到一個節點,我們需要得到這個節點所代表的子串出現在多少個模式串中。 建立廣義后綴自動機。每次插入…

BigDecimal 加減乘除運算

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 java.math.BigDecimal。BigDecimal一共有4個夠造方法,讓我先來看看其中的兩種用法: 第一種:BigDeci…

主碼 超碼 候選碼

碼是數據系統中的基本概念。所謂碼就是能唯一標識實體的屬性,他是整個實體集的性質,而不是單個實體的性質。它包括超碼,候選碼,主碼。   超碼是一個或多個屬性的集合,這些屬性可以讓我們在一個實體集中唯一地標識一…

學成在線--18.新增課程(課程分類查詢)

文章目錄一.需求分析二.課程分類查詢介紹三.數據結構四.數據格式五.數據模型六.Api接口七.服務器端1.Dao1)定義mapper2)定義mapper映射文件2.Service3.Controller八.接口測試一.需求分析 用戶操作流程如下: 1、用戶進入“我的課程”頁面&…

給程序員們的工資報價提醒

在薪水上討價還價的方式有很多種,我要說的這一點也許并不是最好的。然而,如果使用的得當,會收到很好的效果。如果你正在跟一家公司接觸(沒有經過職業中介),而且事情看來很順利,進度很快,你要保持這種面試的…

POI 方式-excle 表格導出實現-java-poi

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 效果&#xff1a; jsp 頁面 用的Bootstrap &#xff1a; <li class"dropdown"> <a href"javascript:void(0)…

02-css的選擇器

css的選擇器&#xff1a;1.基本選擇器 2.高級選擇器 基本選擇器包含&#xff1a; 1.標簽選擇器標簽選擇器可以選中所有的標簽元素&#xff0c;比如div&#xff0c;ul&#xff0c;li &#xff0c;p等等&#xff0c;不管標簽藏的多深&#xff0c;都能選中&#xff0c;選中的是所有…

iphoneX樣式兼容

// 1.viewport meta 標簽增加屬性viewport-fitcover // 2.body元素增加樣式 body { padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); } // 3.如有fixed底部的元素&#xff0c;也增加上面樣式 xxx { padding-bottom: constant…

學成在線--19.新增課程(數據字典)

文章目錄一.介紹二.數據模型三.數據模型類四.字典查詢API接口五.服務器端1.Dao2.Service3.Controller一.介紹 在新增課程界面需要選擇課程等級、課程狀態等&#xff0c;這些信息統一采用數據字典管理的方式。 本項目對一些業務的分類配置信息&#xff0c;比如&#xff1a;課程…

范式簡介

范式是符合某一種級別的關系模式的集合。關系數據庫中的關系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類&#xff1a; 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF) 一個低一級范式的關系模式&#xff0c;通過模…

程序員的進化

對于很多同學來說&#xff0c;他們對程序員的職業生涯非常關注。而這本質上是一個進化的過程。我們將如何進化&#xff1f;在每個進化階段我們應該如何提高自己&#xff1f;下面的文章根據我自己的切身經歷和閱讀過的書&#xff0c;為程序員每個階段的進化提供了不同的學習思路…

【樹形dp】vijos1144小胖守皇宮

細節很精妙 描述 huyichen世子事件后&#xff0c;xuzhenyi成了皇上特聘的御前一品侍衛。 皇宮以午門為起點&#xff0c;直到后宮嬪妃們的寢宮&#xff0c;呈一棵樹的形狀&#xff1b;某些宮殿間可以互相望見。大內保衛森嚴&#xff0c;三步一崗&#xff0c;五步一哨&#xff0c…

手機號碼歸屬地及運營商查詢

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class NewMobile {public stati…

redhat6.5手動配置網絡

2、手動設置ip地址如果虛擬機不能自動獲取IP&#xff0c;只能手動配置&#xff0c;配置方法如下&#xff1a;輸入命令#vi /etc/sysconfig/network-scripts/ifcfg-eth0 [編輯網卡的配置文件]輸入上述命令后回車&#xff0c;打開配置文件&#xff0c;使用方向鍵移動光標到最后一行…

學成在線--20.新增課程(最后完善)

文章目錄一.效果展示二.服務端1.Api接口2.Dao3.Service4.Controller三.前端1.頁面完善1&#xff09;創建course_add.vue頁面2&#xff09;course_add.vue頁面路由3&#xff09;course_list.vue中添加鏈接2.查詢數據字典1&#xff09;視圖中代碼2&#xff09;定義Api方法3&#…

http協議工作流程

用戶單機鼠標后所發生的事件過程如下&#xff1a; &#xff08;1&#xff09;瀏覽器分析鏈接所指向頁面的URL。 &#xff08;2&#xff09;瀏覽器向DNS服務器請求解析URL的IP地址。 &#xff08;3&#xff09;域名系統DNS解析出URL對應的IP地址。 &#xff08;4&#xff09…

html里面表格問題

表格問題匯總&#xff1a; 現代網站中表格的用武之地已經很少了&#xff0c;但是一些框架&#xff0c;如bootstorp還是會用到的&#xff0c;所以還是需要了解掌握。本隨筆只涉及開發過程中遇到的表格問題&#xff0c;不做其他拓展。 1、caption代表的是表格元素的標題。至于標題…

利用Underscore求數組的交集、并集和差集

1 數組交集函數——intersection 數組的交集是指包含多個數組中的共同元素的一個數組&#xff0c;求數組的交集就是找出給定數組中的共有元素。 下面實現一個求兩個數組交集的函數。 判斷數組是夠包含指定值&#xff0c;使用Array.indexOf就可以。所以我們可以遍歷第一個參數數…

RT-Thread簡介

RT-Thread簡介 RT-Thread是一款完全由國內團隊開發維護的嵌入式實時操作系統&#xff08;RTOS&#xff09;&#xff0c;具有完全的自主知識產權。 經過16個年頭的沉淀&#xff0c;伴隨著物聯網的興起&#xff0c;它正演變成一個功能強大、組件豐富的物聯網操作系統。 RT-Thre…