1. 程式人生 > >c 語言學習筆記(一)基礎

c 語言學習筆記(一)基礎

lac alert https 內容 con 標記 prime c++ prime c基礎

近期工作上有對C語言算法上的需求,所以要學C,上學的時候沒學過,只學過半年的Java(我是專升本,本科學的材料),2015年工作後也學過C,那時候的需求是能看懂就可以,也就沒深入研究,用一周擼了一遍C基礎,可以看懂了,現在要能自寫出來,而且是算法相關的,兩年過去了,一些細節更是早就忘光了,只能再深入學習一下了。最後說一句,每個人學東西都是從不會開始,除了班禪我從未聽說有人生下來就會需要後天習得的技能,即便是動物也是通過遊戲來習得捕獵的,所以說別怕晚,3個月你就可以入門了,而且除了相對論這種接近於哲學的難以理解的,我從來沒覺得任何其他技能難學,人腦就像計算機裏面的帶寬一樣是有其極限的,也就是說任何人發明出來的東西都是可以學會的(此處不包括深度學習訓練得到的模型,理解模型需要的帶寬有點高)

本文僅作為我自己學習時候的一個標記,或者回頭復習一下看一下,不能作為他人的學習筆記,也不能用來系統的學習C語言。

本文內容參考:Linux C編程一站式學習http://akaedu.github.io/book/

c/c++ primer https://github.com/andycai/cprimer

#include <stdio.h>

int main(){

  printf("Hello World\n");

  return 0;

}

註釋並不會被編譯器所編譯,/* */,不能嵌套,可以跨行

註釋/* 註釋*/

//註釋,不能跨行

\‘ 單引號‘(Single Quote或Apostrophe)
\" 雙引號"
\? 問號?(Question Mark)
\\ 反斜線\(Backslash)
\a 響鈴(Alert或Bell)
\b 退格(Backspace)
\f 分頁符(Form Feed)
\n 換行(Line Feed)
\r 回車(Carriage Return)
\t 水平制表符(Horizontal Tab)
\v 垂直制表符(Vertical Tab)

printf("character %c \n integer %d \n float %f ",‘}‘,3,3.14);

printf中的第一個字符串稱為格式化字符串(Format String),它規定了後面幾個常量以何種格式插入到這個字符串中,在格式化字符串中%號(Percent Sign)後面加上字母c、d、f分別表示字符型、整型和浮點型的轉換說明(Conversion Specification),轉換說明只在格式化字符串中占個位置,並不出現在最終的打印結果中,這種用法通常叫做占位符(Placeholder)

常用變量類型

char 字符型 ,int 整型,float 浮點型,double 雙精度浮點型

char fred;
int bob;
float jimmy;
double tom;

上面的只是聲明,如下是為變量賦值

fred = ‘c’;

也可以將聲明和復制放在一行 如:int bob= 3;

我建議在聲明時直接進行賦值,因為我在用c++寫代碼時,有時變量自己附初始值不是0 ,而是其他值。

表達式

*和/是同一優先級,+和-是同一優先級,*和/的優先級高於+和-。對於同一優先級的運算從左到右計算,如果不希望按默認的優先級計算則要加()括號(Parenthesis)。例如(3+4)*5/6應先算3+4,再算*5,再算/6。

各種語言中的運算符都是相同的,至少現在還沒看到在運算符上使用不同規則的。

printf("%d hours and %d percent of an hour\n", hour, minute * 100 / 60);
printf("%d and %f hours\n", hour, minute / 60.0);

函數

#include <stdio.h>

void newline(void);
void threeline(void);

int main(void)
{
...
}

void newline(void)
{
...
}

void threeline(void)
{
...
}

和c++類似也是需要先聲明,後定義,或者直接在聲明時直接定義,

全局變量局部變量和其他語言相同

分支語句,與其他語言在形式上稍有不同,但是大體相同

void print_parity(int x)
{
if (x % 2 == 0)
printf("x is even.\n");
else
printf("x is odd.\n");
}

if /else if /else

if (x > 0)
printf("x is positive.\n");
else if (x < 0)
printf("x is negative.\n");
else
printf("x is zero.\n");

c 語言學習筆記(一)基礎