【iOS開發基礎】【C語言】02,ios開發02

來源:互聯網
上載者:User

【iOS開發基礎】【C語言】02,ios開發02

 

一、函數

  (一)什麼是函數

    任何一個C語言程式都是由一個或者多個程式段(小程式)構成的,每個程式段都有自己的功能,我們一般稱這些程式段為“函數”。

  (二)函數的定義

    目的:將一個常用的功能封裝起來,方便以後調用

    步驟:確定函數名,確定函數體,調用

    格式:傳回值類型 函數名(形式參數列表)

       {函數體}

  (三)函數的調用 

     1 int average(int num1,int num2) 2 3 { 4 5 return (num1 + num2)/2; 6 7 } 8 9 int main()10 11 {12 13 int a = 1;14 15 int b = 3;16 17 int c = average(a,b); //調用函數18 19 return 0;20 21 }樣本:  

  (四)函數的參數   

    ①. 形參:定義函數時,函數名後面的參數 如num1和num2

    ②. 實參:調用函數時,傳人的具體資料   如a和b

    ③. 形參和實參的個數必須相等

    ④. 函數體內部不能定義和形參同名的變數

    ⑤. 如果是基本的資料類型作為形參,則是純粹的值傳遞,修改函數內部形參的值並不會影響到實參的值

    ⑥. 一個函數可以沒有形參,也可以有無限個形參

  (五)函數的傳回值

    1.return 的作用:

      ①. 退出函數

      ②. 返回一個具體的值給函數的調用者

    2.傳回值使用注意:

      ①. C語言是弱文法弱類型的語言,非常不嚴格

      ②. 如果沒有寫清楚傳回值的類型,則預設為int型的

      ③. void代表沒有傳回值

      ④. 就算明確聲明了傳回值類型,也可以不返回任何的值

      ⑤. C語言預設情況下,不允許有兩個同名的函數

  (六)函數使用注意

    ①. 預設不允許函數重名

    ②. 函數之間是平等的,不能夠嵌套定義

    ③. 函數不可以重複定義,但是可以重複聲明,只要是在調用前聲明就可以,地方隨便

    ④. 函數如果是只要聲明沒有定義,那麼編譯可以成功,但連結時會失效

  (七)多人協作開發   

    #include<stdio.h>是一個系統標頭檔。

    #include<abc.txt>相當於把abc.txt檔案中的所有內容以純文字的方式拷貝到當前位置。

    ""表示檔案與.c檔案處於同一路徑,可以使用相對路徑也可以使用絕對路徑。左邊有/的是絕對路徑,沒有/則為相對路徑。

    注意:自訂的檔案使用"",系統檔案使用<>。

    函數如果在調用時,函數定義在調用之後,且前面沒有進行相應的聲明,則編譯器報錯;

    調用函數,沒有函式宣告,編譯器不會報錯,連結時報錯,不定義函數反而不報錯。

    連結:把項目中所以相關的.o目標檔案和c語言的函數庫合并在一起,產生可執行檔。

    通常:

      ①. 函數的定義放在.c檔案中,函數的聲明放在.h檔案中

      ②. 如果要是有某個.c檔案中定義的函數,只需要包含.c檔案對應的.h檔案即可

      ③. .h檔案生下來就是打醬油被別人拿來拷貝包含的,編譯連結時不用寫出

  (八)函數的補充   

    (1)main函數

      傳回值是返回給作業系統的,0為正常退出,其他值為非正常退出。

    (2)printf函數

      傳回值為字元數。如printf("abc");則傳回值為3,若printf("abc男\n");的傳回值為7,因為一個中文在 Mac OS X 系統中佔3個字元。

    (3)scanf函數

      ①.使用前必須加入#include <stdio.h>。

      ②.調用scanf函數時,需要傳入變數的地址作為參數,scanf函數會等待輸入資料,並且將輸入的資料賦值給地址對應的變數。

      ③.用scanf函數接收多個數值時,數值之間的分隔字元是任意的。

      ④.scanf的第一個參數中不要包含\n,比如scanf("%d\n", &a); 這將導致scanf函數無法結束。

 

二、運算

  (一)算術運算

    C語言一共有34種運算子,包括常見的加減乘除運算  

      ①. 加法:+ 還可以表示正號

      ②. 減法:- 還可以表示負號

      ③. 乘法:* 非數學意義上的X

      ④. 除法:/  注意1/2的值為0,並不是二分之一

      ⑤. 取餘(模運算):兩個整數相除之後的餘數(注意兩邊都必須是整數,正負性取決於%左側的數值)

    注意:     

      ①. int a = 10.8;//丟失精度。結果為10——自動類型轉換

      ②. int a = (int)10.8;//把10.8強制轉換為整型——強制類型轉換

      ③. Double c = 10.6 + 6//結果為16.600000。在電腦中,拿兩個數值進行運算,如果類型不同則進行自動型別提升。即把6轉為6.000000後再參與運算——自動型別提升

  (二)賦值運算

    ①.簡單賦值

      int a = 10 + 5;a = b = 10;//從右向左,左邊不能為常量

    ②.複合賦值

      a = a + 5; => a += 5;

      a = a * 5; => a *= 5;

      a += 5 * 6 + 4; => a = a +(5 * 6 + 4)

    提示:運算順序取決於運算子的優先順序和結合的順序。

  (三)自增自減  

    int a = 10;

    把a的值加1有四種方法:

      ①. a = a + 1;

      ②. a += 1;

      ③. a++;

      ④. ++a;

    簡單區分a++和++a。

      int b;

      int a = 10;

      b = ++a; //a == 11,b == 11;a先把值加1為11,再賦值給b

      b = a++; //a == 11,b == 10;a先把值10複製給b,a自己再加1為11

      b = (a++) + (++a);  //a1 == 10,a2 == 12,b == 22

      b = (++a) + (a++);  //a1 == 11,a2 == 11,b == 22

    注意:int d = 10++;//這種寫法是錯誤的,因為對常量進行自加和自減沒有任何意義。

  (四)sizeof

    作用:用來計算變數,常量或者是一種資料類型所佔的記憶體位元組數。

    基本形式:sizeof(變數名|常量|資料類型),完成之後返回一個值。

      ①. Sizeof 變數|常量

      ②. Sizeof (變數|常量)

      ③. Sizeof (資料類型)

    注意:資料類型一定要用括弧括起來,不能寫成sizeof 資料類型這樣的形式。

  (五)關係運算

    (1)條件判斷

      預設情況下。在程式中寫出的每一句正確的代碼都會被執行,但很多時候我們需要在某個條件成立的情形下才執行某一段代碼,如登入操作,這種情況可以使用條件陳述式來完成。

    (2)真假

      在C語言中,條件成立稱為“真”,條件不成立稱為“假”。

      C語言規定,任何數值都有真假性,任何非0值都為真,只有0才為假,無布爾類型。

    (3)關係比較

      關係運算的結果只有兩種情況,如果條件成立就為真,值為1,如果條件不成立就為假,值為0。有6種運算子,分別是:(1) <  (2) <=  (3) >  (4) >=  (5) ==  (6) !=

    (4)使用注意

      ①. == 和 != 優先順序相等,其他四個關係運算子的優先順序相等,且前者的優先順序低於後者。如2 == 3 > 1 應該先計算3 > 1

      ②. 關係運算子中,若優先順序相同,則“從左往右”結合。如4 > 3 < 2,先計算4 > 3

      ③. 關係運算子的優先順序低於算術運算子。如3 + 4 > 8 - 2 相當於(3 + 4) > (8 - 2)

      ④. 練習5 != 4 + 2 * 7 > 3 == 10 先計算5 != 18 > 3 == 10,5 != 1 == 10,1 == 10,假

  (六)邏輯運算 

    邏輯運算的結果只有兩個:真(0)和假(1)

      ①. 邏輯與   &&   條件1 && 條件2 只有的那個條件1和條件2都成立時,才為真否則為假。

      ②. 邏輯或   ||   條件1 || 條件2  當條件1或條件2中有一個成立時就為真,都不成立時為假。

      ③. 邏輯非   !    !條件   取反

    注意:邏輯運算子在進行運算時,只要能夠確定整體的真假性,後面的條件就不再進行而是直接忽略。

    int a = b = 10; 

    int c = (a > 5) && (++b >= 11);//此時a == 10,b == 11,c == 1

    int c = (a < 5) && (++b >= 11);//此時a == 10,b == 10,c == 0

    提示:在進行邏輯運算時,如果搞不清楚各個符號的優先順序,可以使用()。

  (七)三目運算    

    雙目:需要兩個值參與運算

    單目:1個數值參與運算  如!5

    三目:需要3個數值參與

    格式:條件?數值1:數值2 

    先判斷?前的條件,若條件成立則返回數值1,若條件不成立則返回條件2。

    要求比較a和b的值,把數值大的存入到c中  c = a > b ? a : b

    比較a,b,c三個數的值,把最大的值存入到d中

    int  abmax = (a > b) ? a : b;

    d = abmax > c : abmax : c;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.