老賴學iOS開發----C語言運算符/表達式

一.標識符
標識符就是給變量,數組,函數指針,結構體,共用體等用一些有序字符序列起的一個名字.那問題就來了,用來幹嘛的呢?
先來說說如何定義一個變量,格式如下
–>數據類型 標識符;
–>數據類型 標識符 = 常量/變量/表達式;
顯而易見,這裏的標識符,就是我們要起的變量名,例如:int a = 5;//表示開闢了一個4字節的空間,名字叫a.
‘=’ 是賦值號,將右邊的常量放在這個新開闢的空間中.
那麼,標識符的命名,可以隨便取名嗎?答案肯定是不行!C語言中有以下的標識符命名規則,老賴我記得不知道全不全:
1.只能包含字母,數字,下劃線(_)
2.不能以數字開頭
3.不能是關鍵字(int,float 這些系統已經佔用了,C語言中,關鍵字和保留字都是小寫的)
4.嚴格區分大小寫
5.見名識意(老賴我自己加的,你起的名字,讓別人能看得懂,你說int name的name是表示年齡的變量,保證有人打死你!)

在上面的定義變量的格式中,引出了變量的初始化和變量賦值兩個概念.
–>變量的賦值:先聲明變量,在給變量賦值 ;
例子: int a ;//聲明有這麼一個變量a;
a = 3; //給這個變量a,賦值3;
–>變量的初始化:是在聲明變量的同事給變量賦值;
例子:int a = 3;//聲明有個變量a,並且a 被賦值了3;
一個變量可以多次賦值,結果是最後一次賦的值.

二.輸入和輸出

還記得咱們上篇博客中,咱們打印了一個Hello World!
記性好的朋友,應該記得有這麼一個單詞”printf”,沒錯,這個就是輸出函數.
輸出:printf(“格式控制符”,輸出列表);

printf(“輸出一段話”);

printf(“\n”);

printf(“%d”,3);

printf(“\n”);

printf(“%c”,’a’);

上面的例子,我們可以觀察到,printf函數可以直接打印常量,格式是:printf(“*“)
如果打印變量的話,就要用printf(“格式控制符”,輸出列表)
有個需要死記硬背的,\n 是轉義字符,表示換行.不解釋,眼下記住就行了.
變量的格式控制符,跟後面的變量是要對應的:

%d  --> 輸出十進制整數
%o -->  輸出八進制整數
%x  --> 輸出十六進制整數
%f  --> 浮點數
%c  --> 字符
%s  --> 字符串
%p  --> 輸出內存地址
:
老賴補充一點兒,%m.nf這樣的控制符,以後肯定會用到,m和n是兩個整數.

比如,%0.2f
–>m=0表示最小字符寬度,當實際字符的個數小於該值時,輸出會自動補空格,m爲正數時數字右對齊,負數時左對齊
( 例如%3d 對應 1的話,就是##1 %-3d 對應 1 的話,就是1## (#表示空格)
當實際的顯示大於m,那就按實際輸出,也就是m無意義了
)
–>n= 2表示小數的保留位數.

printf("-->%0.2f",23.45678);
打印結果就是:-->23.46

那有好朋友要問了,我不能只打印吧,怎麼往程序中輸入一些東西呢?
問的好!C語言之父丹尼斯·裏奇跟你想一塊兒去了!
輸入函數:scanf(“格式控制符”,輸入列表);

這裏老賴要友情提醒一下,輸出的時候,我們可以這樣printf(“–>%d”,45);加上–>也是老賴的個人愛好,旨在控制檯上好標識出來,方便一眼就看出來.
But!輸入函數中,除了格式控制符外,不要增加任何普通字符!切記!
另外!還要在輸入列表的變量前,必須!必須!必須加上 & 這個符號(取地址符)!

例如:

int a;
scanf(“%d”,&a);
printf(“–>%d”,a);

打印結果就是:

9
–>9Program ended with exit code: 0

首先打印控制檯,顯示一片空白,那是等待我們輸入,我們輸入9後回車,程序纔會繼續往下走,要不然,scanf會等我們一直到老!

三.表達式
表達式:由常量,變量和運算符組合成的式子.
例如: int a ;
a= 5+8;//這就是一個表達式
如何看或者說讀一個表達式呢?
1.看錶達式的功能
2.看錶達式的值
四. 運算符:
算術運算符
+ –> 加
- –> 減
* –> 乘
/ –> 除
[注]除號兩邊都爲整形時,結果爲整形,除號兩邊有一邊爲浮點型時,結果爲浮點型.
% –>取餘(模)
例如:
4%2 = 0;
4%3 = 1;
3%4 = 3;

簡單說就是取餘數.[注]:1. %取餘符號兩邊必須爲整形
2.左邊的數小於右邊的數,則結果爲左邊的數

自增/自減運算符(++ –)

這兩傢伙並不是想的那麼高大上,一開始設計的初衷是爲了節省內存資源,現在的設備不需要這麼節省,去犧牲可讀性.
功能:聲明一個整形變量I,無論是I++還是++I,功能都是讓變量+1;
不過有個比較繞的地方,取值的時候要看情況了:i++或者++i直接參與運算的時候例如
a= i++;或者a = ++i;
i++,加前取值,先取變量的值參與運算,然後變量的值再加1;
++I,加後取值,先將變量的值加1,再取變量的值參與運算;

鍵入i初始化等於0,
則a = i++後,a = 0,I = 1;
a = ++I後,a = 1,I = 1;
我們可以用代碼來證明:

#include <stdio.h>

int main(int argc, const char * argv[]) {

    int i = 0;
    int a;

    a = i++;
    printf("-->i = %d\n-->a = %d\n",i,a);
    }
   打印結果是:
   -->i = 1
   -->a = 0 
   Program ended with exit code: 0
關係運算符(比較兩個數的大小,結果:真/假)

> 大於符號 例子: 1> 3 結果爲0,假
< 小於符號 例子: 1<3 結果爲1,
>= 大於等於 例子: 1>=3 結果爲0,假
<= 小於等於 例子:1<=3 結果爲1,真
== 等於符號 例子: 1==3 結果爲0,假
!= 不等於符號 例子: 1!=3 結果爲1,真

邏輯運算符(比較兩個式子的關係,結果:0爲假,一切非0 的數據皆爲真)
&& : 邏輯與 —->兩邊都爲真,結果爲真,一邊爲假,結果爲假
|| : 邏輯或 —->兩邊都爲假,結果爲假,一邊爲真,結果爲真
! : 非 —-> 非假即真,非真即假
條件運算符(三目運算符?:)
? : 三目運算符(沒錯,一個問號和一個冒號,組成了三目運算符)
格式:
表達式1 ? 表達式2 : 表達式3;
邏輯關係:先計算表達式1 的值,值爲真(不爲零就是真,管你等於1還是10000也不侷限數字),則運行表達式2;如果值爲假(0),則執行表達式3.
老賴理解之:表達式2和表達式3打賭,賭表達式1是否爲真,誰贏系統就運行誰!
符合運算符
1.簡單賦值(=)
有小哥估計忍不住要問了,這個”=”與關係運算符中的”==”不一樣嗎?
老賴微笑的說,指定不一樣,並且==更相當於咱們日常接觸的等號,就是左右是不是相等的意思.
而這個=號,在C語言裏,則表示賦值運算,即把等號右邊的值賦值給等號左邊的變量.

2.複合算術賦值(+=,-=,*=,/=,%=)
一看例子就知道怎麼玩的了:

int a = 5;
a += 5;等價於a = a + 5;

意思就是左邊變量的值,先跟右邊表達式的值進行相應的算術運算,然後把運算後的結果,賦值給左邊的變量.

逗號運算符(略)
運算符的優先級(略,還是貼張圖片吧)
運算符的優先級

好了,完事,收工,下篇:要講流程控制了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章