【Xcode學C-2】常量、變數、scanf、printf以及各種運算子介紹

來源:互聯網
上載者:User

標籤:io   os   使用   ar   strong   資料   sp   on   代碼   

一、常量

(1)整型常量:1

(2)浮點常量(即帶有小數的):預設是double型,如5.3,float型的後面會有個f,如5.3f。

(3)字元常量:單引號的,‘a‘或‘1‘,裡面只能是一個位元組的字元,漢字不行,漢字佔3個位元組。

(4)字串常量:雙引號的,“hello”等。


二、變數

用int、double、float、char等定義變數。定義一個變數後,第一次賦值也稱之為初始化。必須在初始化後再使用變數。

(1)變數的範圍是從定義起至遇到return}止,其實就是在一個函數內有效,出了這個函數就無效,除非是全域變數。

(2)需要先定義變數,再使用,因為代碼是從上至下執行的。

(3)格式化輸出,%i,%d,%c,%f,%04i,%.2f等預留位置。

%i和%d無差別,%i是老式寫法,%d是新式寫法而已。

%.2f小數點後面的數字表示保留幾位小數。

%4i表示數字位元寬度。如數字是1,那麼結果是   1,前面保留三位。

%04i相比上面,是用0填補空位,即數字是1,那麼結果是0001。這個在iOS開發中開發幀動畫可能有用,系列圖片編號是001,png、002.png、003.png等。

%-4i是靠右對齊,數字是1,輸出結果是1   ,後面保留三位。

%4i,如果數字是12345多於4位,那麼不會受到約束,全部輸出12345。


三、scanf注意點

int main(int argc, const char * argv[]) {    //利用scanf和printf,接受使用者輸入的兩個數字,相加後輸出和結果    int number1;    int number2;    printf("plz input your first number:");    //&表示取地址,scanf是要求使用者輸入    scanf("%d",&number1);    printf("then second number:");    scanf("%d",&number2);    int sum=number1+number2;    printf("The sum is %d\n",sum);        //scanf也可以一次接受多個輸入,但是使用者輸入格式要和定義的一模一樣    //如下面一句,使用者在輸入時,兩個數字之間也必須用逗號隔開    //我們可以用任意符號作為分隔字元,不一定是逗號    //scanf("%d,%d",&number1,&number2);        //如下,如果輸入1234,那麼程式只會截取前三位,即123,最終輸出nnumber1也是123。    //scanf("%3d",&number1);        //在scanf中,以斷行符號作為結束輸入訊號,所以不能用\n,如scanf("%d\n",&number1);        //我們輸入的東西放在輸入緩衝區中,當按下斷行符號鍵後,輸入緩衝區中又個斷行符號鍵/n,此時scanf會從這個輸入緩衝區中取值,如果格式不匹配,則結束取值。    //而結束取值後,輸入緩衝區仍有一個資料和/n,所以遇到下一個scanf時,程式不會要求我們輸入東西,而是直接到輸入緩衝區取值進行賦值。    //如下程式,我們輸入a,第一個不匹配格式,number3裡就是個隨機數,而因為輸入緩衝區中又a和\n,所以滅幼要求為myC輸入一個值,而是直接到輸入緩衝區中取值賦值給myC,如果還是不匹配,估計會一直這樣持續下去。    int number3;    scanf("%d",&number3);    printf("%d\n",number3);    char myC;    scanf("%c",&myC);    printf("%c\n",myC);        return 0;}

四、運算子號

(1)除了+、-、*、/之外,還有%表示模運算取餘。模運算取餘一般用在得到一個範圍內隨機數的例子中,比如需要0~15之間的範圍,就用%16。

int main(int argc, const char * argv[]) {    //自動類型轉換,有警告    int number3=10.8;    //強制類型轉換    int number4=(int)10.8;    //型別提升:先把8轉換成double才能和10.8相加,否則不可、這個轉換是電腦自動完成的。    //規律:把小類型的資料轉換成大類型的資料類型    double number5=10.8+8;    //參與預算的資料是什麼類型,出來的值就是什麼類型,如下面結果是0,但並不是前面int的作用,替換成double仍然是0    int number6=1/2;        return 0;}


(2)賦值運算子就是:=,或者+=、-=等等。


(3)自增自減有兩種形式a++,++a,前者是先運算再自增、後者相反。所以b=a++和b=++a,前者的b=a,後者的b=a+1。

複雜的時a=10,b=(a++)+(a++),結果b是21,a是12。前面一個a++,先運算後自增,所以值是10,自增結果是11,到後面的a++時,a已經是11了,先運算的話就是用11和之前的10相加,等於21。然後自己增加一個變成12。


(4)sizeof()是計算資料以及資料類型佔用記憶體大小的運算子。如int num1=sizeof(10)或者int num1=sizeof 10,或者先定義float a=10.5,然後int num1=sizeof(a)或者int num1=sizeof a。但是在計算資料類型時括弧不能省略,即int num1=sizeof(float)。


(5)逗號運算子:是輸出最後一個運算結果,如int b=(a=5,a++,a*6);結果是36。


(6)關係運算子:返回結果是真為1,假為0,且>、>=、<、<=的優先順序高於==、!=,如果都是平級的時從左向右運算。關係運算子優先順序小於+1*/這種算數運算子。


(7)邏輯與算符:與或非分別是&&、||、!。核心需要注意的時&&前面如果假,則後面的就不會運算了。||前面為真,則後面的就不會運算了。因為已經知道結果了,所以就省略運算了。

【Xcode學C-2】常量、變數、scanf、printf以及各種運算子介紹

相關文章

聯繫我們

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