作者DrStein (啤酒肚)
看板C_and_CPP
標題Re: [討論] 如何從一個完全沒程式基礎進階到程式高手?
時間Sat Apr 2 15:11:10 2011
※ 引述《processior (korman)》之銘言:
: 小弟我對程式是各完全沒基礎
: 最近想學C++但是我一值再想
: 要把程式學好一定要大量閱讀別了程式
: 然後自己也要試著去CODING
: 我想請問板上各位有經驗的高手
: 有沒有C++專門的網站有好的程式碼可以下載
: 然後有沒有好的習題讓我自己CODING增加自我功力
在下是從科學計算入手,到現在工作是做編程優化
提供一些入門心得:
C的index是從零 與平常習慣不一樣。
然後寫迴圈的習慣是 "從OO到XX,但不做XX"
通常會寫成 for(i =0; i<n; i++)
這樣是共作n次。
看到i++不要怕,想成 i = i +1;就好
for的意思,先理解成 : for(起點; 終點; 做一圈後要做的事)
先這樣就勘用了
short 與 int都是整數,只是能存放的範圍不同。
double 與 float 都是實數。 只是精確度有差。
/*
char雖然是存放範圍最小的整數,但這東西已被廣義使用,
有時在見縫插針的編程優化會狂用這東西,不
過遇到的機會該不是很高。
*/
然後看到指標 double *a,不要怕
先理解成 , double 的array就好。
然後 array要開空間啊,不然怎存。
就要來個 a = (double*)malloc(n*sizeof(double));
用完了要把a這空間幹掉,不然浪廢記憶體。
用free(a);
有時看到 double *a = (double*)malloc(n*sizeof(double));
這會覺的怪怪,不要管 就背起來這兩者等價就好。
直接一點講 double *a,與沒有 double的 *a完全是兩件事。
前者是講 a是個array。
後面是講,a已是個array了,現在想對array上的數作訪問。
還有 C的不等於 是寫成 != 不是寫成 \=
同理 等於是寫成 == 不是 =
不要笑,這個卡過我三周。。
基本上就這幾點了。
這樣該不懂語法也是可以看些記算方面的程式了 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.132.79
→ stupid0319:double a是影印紙 04/02 15:13
※ 編輯: DrStein 來自: 58.115.132.79 (04/02 15:16)
→ chiang0823:N年以前...我也犯過if(x=a)其實是要if(x==a) XDDD 04/02 15:20
推 VictorTom:小弟我則是踩過 if(10<x<20) 這種地雷....Orz 04/02 15:31
推 jason12308:那是邏輯錯誤,編繹不會錯……常讓人臉囧掉 04/02 16:42
推 junglewen:完全沒有基礎要先從看課本開始 問不出甚麼東西來的 04/02 19:30
→ dayyeah:其實大部分的compiler都可以開啓條件式中不要有賦值 04/02 20:00
→ dayyeah:的warning 04/02 20:00
推 ouyang0916:看到這個版標 我最近每個月有參加一次 程式比賽 04/03 00:45
→ ouyang0916:不知道版上可不可以PO 給大家練習 討論討論 04/03 00:45
推 ouyang0916:D大可以po一下 出新手村以後的修練旅程嗎 04/03 13:42
→ DrStein:上面這三本書很棒,值得精讀 對編程語言有更深層的理解 04/04 00:59
推 ouyang0916:感謝大大分享 04/05 13:21