C的條件判斷有多種表達方式 
最基本的

if

if(條件) {成立時執行;...}

這種表達方式 條件處可以是比較 比方x>0 a==b也可以狀況邏輯運算 如 a>b||a>10&&a!=99(a大於b或a大於10或且a不等於99時)
當執行時只有一行 則大括弧可以省略

條件

條件的運算為一個布林運算,且在C語言中1為True,0為False,布林運算可以是比較類的運算
可以用&&(且)或||(或)或!(非)等來做多個邏輯運算,比方說a==1&&b!=2||c>4 (a是1且b不是2或c>4時為True)

if...else...

if(條件){成立時執行;...}else{不成立時執行;...}

這樣的表達方式是同時有兩面的,也就是沒成立時,一定還會執行不成立的那個code,else也是當執行時只有一行 則大括弧可以省略

if...else if...else

if(條件){...}
else if(條件){...}
else if(條件){...}
else {...}

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

寫過VB就知道Function輸入時可選擇ByVal(傳值)或ByRef(傳址)
兩者差別就是ByVal變數在Function內的值與傳入的變數無相關,也就是在Function內怎麼變動,傳進來的那個變數依然不變
ByRef變數,在Function內改變變數值,呼叫者傳入的變數就跟著改變(兩者同步)
所以介紹這兩種Function輸入方式在C的實現方式

傳值 (By Value)

傳值類型就跟上一個介紹的輸入值相同,就是輸入一個變數,變數會複製外界傳入的值到該宣告變數,然後任其改變也不會影響外面的變數。

範例 傳值 外界變數不改變

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Mar 12 Sun 2017 14:34
  • 函數

函數(function)

Function的用意就是將重複使用的程式碼,寫成一個區塊再給他一個名字,這樣要用的時候只要呼叫(Call)那個名字就好了,但是Function外面的變數並不會跟Function內的變數共用,所以有輸入值(Function處理所需要的值),然後也可以帶入之後返回一個值如(a=sin(2*pi)),像sin這樣帶入之後就直接變成一個值然後指派給a就是有回傳值的Function,而沒有回傳值的Function通常是拿來做不需要回傳,或者需要處理大於一個變數所用。
 

函數宣告

回傳值類型 函數名稱(輸入值類型 輸入值,.../*可選*/) 
{ 
    函數內的程式碼;
    ... 
    return 回傳值;//此行可選(與回傳類型有關) 
}

回傳值類型

主要分兩種

  1. 有回傳(函數Function):種類跟一般變數的種類一樣 如
    • int
    • float
    • char 等等..
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Mar 12 Sun 2017 14:04
  • 指標

指標(pointer)

就字面上來理解,指標就是箭頭
在C語言裡也差不多是那個意思,C語言稱作"中階語言"正是因為它很接近硬體
可以直接操作硬體,指標就是操作記憶體
那到底跟箭頭有甚麼關係呢?
每個變數都要存到記憶體裡面,每個記憶體都有一個編號
就跟地址一樣,也就是說我告訴你那個地址,你就可以找到那個變數
位址→變數(所以有箭頭的感覺)

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Mar 12 Sun 2017 13:29
  • 輸入

輸入同樣也是在stdio.h內

輸入
scanf("格式化字串",變數位址,...);

scanf與printf相同都採用格式化字串來做輸入,但是scanf一定要有變數在後方,為甚麼?因為沒東西存怎麼輸入
但注意到的是,scanf的變數是以位址的方式,也就是一般輸入的時候要在變數前面加上&(取得變數位址)這個operator
在這樣的用法下,&並不是作為字元且運算
格式化字串表取自wiki(藍色常用)

關鍵字

格式化字串
char  %c
unsigned char  %c, %hhu
signed char  %c, %hhd, %hhi
int  %i, %d
unsigned int  %u
signed int  %i, %d
short int  %hi, %hd
unsigned short  %hu
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Mar 12 Sun 2017 09:53
  • 輸出

C語言輸入輸出需引用Stdio.h,這也是為甚麼基本架構上面會有#include<stdio.h>這行的原因

輸出
printf("格式化字串",可選的變數);

printf這個函數 預設可以填入一個字串,後面可以以逗號加上無限多個變數,如果只有字串,則指輸出字串,如大家最喜歡的哈樓沃德(hello,world)
範例 hello,world

 

 

#include <stdio.h>
int main()
{
printf("hello,world");
return 0;
}
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

運算子(operator)就是在做運算時的符號,運算不單單包含數學運算,與變數宣告是相同的,有算數(+-*/)、邏輯(And Or Not)、位元處理(2進位0101)、比較(><==!=)、指派(=)等..,但注意到的是與數學不同的地方,所有變數在左方被右方值指派(assign)(x=2+5),並不會有兩個以上的變數在左邊(2x+5=7或2x+3y=4z+9這種的),且運算子有分優先順序,比方算術運算比邏輯優先(比方2+5==1+6,2+5跟1+6先做才比較)
運算子

  • 算術類
    • +
    • -
    • * 乘
    • / 除
    • % 取餘數
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

直接固定都不會再執行期間改變的數大都為常數(const),與數學上的意思是相同的

如 1(整數常數)、3.14(浮點數常數)、'a'(字元常數)、"<3"字串常數

在程式語言中常會需要用到改變的內容

如 使用者要輸入一個值,然後設計者再透過這個值做計算得出一個值,這時候就需要用一個變數來存使用者輸入的資料(因為使用者要輸入的值在設計時是一個未知數),所以這時候就需要用到變數了,跟數學假設一個x其實差不多的,只是你要讓電腦知道你有這個x,他存著什麼。

但是變數也有分很多種類,如下(藍字為最基本常用)

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

屬性類
size_t strlen(const char *s);//取得字串長度回傳(直到\0)
複製類 
char *strcpy(char *str1, char *str2); 
// 將str2 copy到str1內 
char *strncpy(char *destin, char *source, int maxlen); 
//從source字串的第0個字元開始copy maxlen個字元長度的字串到destin 
char *strdup(char *str); 
//將copy的字串做成回傳值 指派給前方的字串 如 strdest=strdup(strsrc);
連接類
char *strcat(char *s1, const char *s2); 
//將s2接到s1後面 同C++ s2+s1 同VB s2 & s1 
char *strncat(char *s1, const char *s2, size_t n); 
//將s2其中n個字元(如果s2小於n就取整個s2)接到s1後面
切割類
char *strtok(char *s1, const char *s2); 
//第一次使用將s1以s2作為分隔符號切割(插入結束符號)傳回字串開頭指標 
//第二次傳入NULL繼續切割再以s2切割s1再(插入結束符號)傳回第二段切割字串開頭指標 
//n次 傳入NULL繼續切割 再傳回第n段前方的開頭指標

繩繩 發表在 痞客邦 留言(0) 人氣()

下為一基本c語言可以執行的結構

#include<stdio.h>//前置處理器(引用STandardInput&Output.Headfile(標準輸入輸出標頭檔))
int main()//主程式(整數回傳 名為main的function)
{
    return 0;//回傳整數0
}

 

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

«12