iOS學習之C語言基礎學習day-02

IDE:

IDE 是 Integrated Development Environment 的簡稱,叫做集成開發(fā)環(huán)境。

集成開發(fā)環(huán)境是用于提供程序開發(fā)環(huán)境的應用程序,一般包括代碼編輯器編譯器調試器和圖形用戶界面工具。

不同的開發(fā)平臺具有不同的 IDE 工具,比如開發(fā) Java 程序的 IDE 是 Eclipse,開發(fā).Net 程序的 IDE 是 Visual Studio……………

Xcode:

在 OS X 上開發(fā) C C++ Objective swift 程序的 IDE 工具是 Xcode。這是 Apple 公司推出的1款專門用于開發(fā)在 OS X, iOS 系統(tǒng)上的程序,它是閉源的,但是它是免費的。

Xcode 的功能:

一鍵編譯,鏈接,運行。再也不用苦逼的去執(zhí)行 cc 命令來手動的編譯,鏈接,運行了。

在 Xcode 中寫代碼的時候,Xcode 會實時檢查我們寫的代碼是否符合語法規(guī)范,如果不符合會以紅色的嘆號來標注,當我們單擊嘆號的時候還會顯示錯誤的原因和建議的修改方式。

代碼智能提示功能,我們只要敲出單詞前幾個字母 Xcode 會自動提示后面的內容(初學者建議關閉此功能)

關鍵字自動著色,在代碼中代表不同功能的單詞以不同的顏色顯示。

代碼自動縮進,使代碼看起來有層次感。

代碼調試功能,99.99%的 BUG 我們都可以通過調試找到。

使用 Xcode 來開發(fā)第一個 C 程序:

1.打開 Xcode 會出現1個歡迎界面

Xcode 歡迎界面

需要注意的是,你可能看不到這個界面,那是因為你可能設置了啟動 Xcode 的時候不出現這個界面。那么點擊上次的菜單欄 ?Window 的 Welcome to Xcode ,就可以顯示出來了。所以選中上圖中的 show this window when Xcode launches .這樣當我們每次啟動 Xcode 的時候都會顯示這個歡迎界面。

2.在這個歡迎界面中單擊 Create a new Xcode project 來創(chuàng)建1個 Xcode 項目。這個時候會彈出來1個新的界面出來讓我們選擇要創(chuàng)建的項目的類型。在這個界面選中 OS X 的 Application ,然后在右鍵選中 Command Line Tool .單擊 Next 進入下一步操作。

彈出來的窗口

在彈出來的窗口中,設置項目的一些必要信息

信息設置

當項目的必要信息設置完成以后,點擊 Next 按鈕進入下一步操作。這個時候會讓你選擇項目存儲路徑。

存儲的路徑

選擇你希望存儲的路徑后。點擊 Create 按鈕創(chuàng)建項目,你就可以看到 Xcode 的工作界面。

Xcode 的工作界面

這里簡單介紹 Xcode 的幾個最重要的工作區(qū)域

源代碼導航區(qū):在這里可以瀏覽項目中的源文件,單擊源文件可以再代碼民編輯代碼。

代碼編輯區(qū):編輯源代碼有地方,在源代碼導航區(qū)單擊 main.c ,就可以在這里修改源代碼。

控制臺輸出區(qū)域:當運行程序的時候,程序輸出的信息會輸出在該區(qū)域。

圖中標注的幾個區(qū)域可以單擊右上角的圖標或者隱藏。

右上角的圖標

編寫源代碼:

當新創(chuàng)建1個項目,在源代碼導航區(qū)默認會有這個項目的源代碼結構。單擊 main.c ?可以在代碼編輯區(qū)直接編輯該源文件的代碼。1個完整的 C 代碼我們寫過了,現在在 Xcode 中寫代碼試試。

源代碼

在 Xcode 中編寫源代碼提示功能:只要敲出單詞前幾個字母 Xcode 會自動提示后面的內容(初學者建議關閉此功能)

關鍵字自動著色:在代碼中代表不同功能的單詞以不同的顏色顯示。

代碼自動縮進:使代碼看起來有層次感。

錯誤提示:在 Xcode 中寫代碼的時候,Xcode 會實時檢查我們寫的代碼是否符合語法規(guī)范,如果不符合會以紅色的嘆號來標注,當我們單擊嘆號的時候還會顯示錯誤的原因和建議的修改方式。

當我們編寫代碼以后,接下來就是編譯,鏈接,運行了。這一系列的操作我們不必再手動的去完成,我們只需要按下 Xcode 左上角的運行按鈕或者按下鍵盤上的 Command + r 快捷鍵 Xcode 就會自動的我們的代碼編譯,鏈接,運行。程序如果有內容輸出就會在下方的控制臺輸出區(qū)域。

Xcode 左上角

程序輸入的內容會輸出區(qū)域。

源代碼導航區(qū)的兩個文件

這里介紹1下,在源代碼導航區(qū)的兩個文件夾的作用:

Day_02:這個文件是我們項目的源文件所在的文件夾,就是我們在項目時間指定項目保存的位置。

products:我們按下運行按鈕或者按下 Command + r ,知道 Xcode 會將我們的代碼編譯,鏈接成1個執(zhí)行文件,然后運行這個執(zhí)行文件,這個執(zhí)行文件就存儲在文件夾下。

Xcode的快捷鍵:

Command + r:編譯,鏈接,運行

Command + b:編譯,鏈接

Command + /:單行注釋

Command + Shift + n:新建項目

Command + C:復制

Command + v:粘貼

Command + x:剪切

Command + z:撤銷

Shift + ↑:從光標開始,往上面的光標選中,以行為單位。

Shift + ↓:從光標開始,往下面的光標選中,以行為單位。

Shift + ←:從光標開始,往左面的光標選中,以行為單位。

Shift + →:從光標開始,往右面的光標選中,以行為單位。

Shift + Command + ←:從光標處到行首。

Shift + Command + ←:從光標處到行尾。

在1個 Project 添加多個 Target:

當1個 Project 中有不同功能的代碼時,我們應該分類管理代碼,而不是寫在一個文件下。那我們可以在1個 Project 中寫多個 Target ,而不是把一個 Project 的不同功能的代碼實現到另一個新的 Project ,這樣一來麻煩,二就是不好管理代碼。

在源代碼的導航區(qū)單擊 Xcode 項目文件。這個時候會顯示項目的設置頁面,單擊如下圖所示的左上角的按鈕就會顯示出 Project 與 Target

的管理頁面,點擊下面的+號,就可以新增 Target 的。

新增 Target

這個時候,就會彈出新增的對話框,與前面一樣。

新增的對話框

設置好一切必要的信息后就可以創(chuàng)建1個新的 Target 到當前這個項目之中了。

設置信息

這個時候查看源代碼導航區(qū),會多1個 Target的。

多1個 Target

C 語言的注釋:

注釋是對一段代碼的解釋,在程度的代碼比較多的時候,而且結構比較復雜的時候,可以給自己或者其他人閱讀提示。

注釋是不會參與編譯的,所以如果有一句話或者多句代碼不想要了,就可以注釋掉。

注釋的分類:

單行注釋:

// + 被注釋的代碼 或者 快捷鍵 Command + /

單行注釋

多行注釋:

/*被注釋的代碼*/ 沒有快捷鍵

多行注釋

注釋的使用注意點:

1.多行注釋不可以嵌套多行注釋,可以嵌套單行注釋

2.勤于寫注釋

3.注釋的作用不止是解釋說明,有時還進行調試

變量:

如果我們在內存中存儲數據,首先在內存中開辟一塊空間,在開辟這個空間的同時要指定這個空間的別名和類型,這個空間的類型決定了存儲數據的類型。

常見的數據類型有int float double char

int:這個數據類型可以存儲 -2147483648 ~ +2147483647 之間的整數。如果存儲的數據不是這個范圍就會有問題!

float:這個數據類型可以存儲有效位不超過7位的小數。

有效位:去掉小數點的位數。(從左邊開始第一個不為0的數相應的位數)

如果你存儲的小數有效位超過了7位,那么超出的部分就無法精確保存,只能精確保存前面的7位!

double:這個數據類型可以存儲有效位不超過16位的小數。

有效位:去掉小數點的位數。(從左邊開始第一個不為0的數相應的位數)

如果你存儲的小數有效位超過了16位,那么超出的部分就無法精確保存,只能精確保存前面的16位!

char:只能存儲單個字符。

變量就是內存中開辟的用來存儲數據的那塊空間,變量是用來存儲數據的

變量的值就是存儲在變量所在的那塊空間的數據

變量的名稱就是變量所代表的那塊空間的別名

變量的類型就是變量所代表的那塊空間的類型

變量的本質是在內存中存儲數據的那塊空間

聲明變量的格式:

數據類型 ? ? 變量名稱;

數據類型就是我們剛說的空間類型: int float double char

變量名稱我們原則上可以隨意。

int num;

當 CPU 執(zhí)行這句代碼的時候, CPU 會在內存中開辟1塊空間 ? ? 空間的類型是 int ? ? 空間的名稱是 num ,用這個空間來存儲數據,因為這個空間是 int 類型的,所以只能存儲 -2147483648 ~ +2147483647 之間的整數,如果存儲的數據不是這個范圍就會有問題!

float num;

當 CPU 執(zhí)行這句代碼的時候, CPU 會在內存中開辟1塊空間 ? ? 空間的類型是 float ? ? 空間的名稱是 num ,用這個空間來存儲數據,因為這個空間是 float 類型的,所以只能存儲有效位不超過7位的小數,如果存儲的小數有效位超過了7位,那么超出的部分就無法精確保存不是這個范圍,就會有問題!

double num;

當 CPU 執(zhí)行這句代碼的時候, CPU 會在內存中開辟1塊空間 ? ? 空間的類型是 double ? ? 空間的名稱是 num ,用這個空間來存儲數據,因為這個空間是 double 類型的,所以只能存儲有效位不超過16位的小數,如果存儲的小數有效位超過了16位,那么超出的部分就無法精確保存不是這個范圍,就會有問題!

char ch;

當 CPU 執(zhí)行這句代碼的時候, CPU 會在內存中開辟1塊空間 ? ? 空間的類型是 char ? ? 空間的名稱是 ch ,用這個空間來存儲數據,因為這個空間是 char 類型的,所以只能存儲單個字符,不能存儲1個中文,因為1個中文字符要占3個字節(jié),1個char類型的變量只能占1個字節(jié)!

所以我們在內存中存儲數據就只需要聲明1個變量,聲明1個變量其實就是在內存中開辟一塊空間來存數據

變量的賦值:

格式語法:

變量名 = 數據;

int num;

num = 100;

1)這個等號的你數學中符號完全不同的.

這個叫賦值符號.

賦值符號的作用:將右邊的數據存儲到左邊的變量所代表的空間中.

1.int 型變量賦值注意點

1)超過范圍太大-->報錯

超過范圍太大

a:如果給的數據太大,直接語法報錯

2)賦值小數-->不報錯

賦值小數

b:如果我們?yōu)?int 變量賦值1個小數,只會存儲這個小數的整數部分.

賦值小數

3)如果超過的范圍比較小

超過的范圍比較小

c:如果給的數據超過的范圍并不多,這個時候存儲的數據是一個隨機值.

2.float型變量賦值的注意點

a:現在給一個 float 變量用賦值 double 小數賦值,會丟失精度

float型變量賦值

b:正確寫法

float f1;

f1 = 12.34f;

c:在 c 語言中如果我們直接寫一個小數,那么這個小數的類型是 double 類型的,如果我們希望這個小數是 1 個 float 類型的,那么就在這個小數的后面加 1 個 f/F 代表前面的這個小數的類型是 1 個 float 類型的

d:float 只能精確保存不超過 7 位的小數.如果賦值的數據的有效位數據超過 7 位,那么超過的部分就不會精確保存.

超過 7 位的小數

3:為 double 型變量賦值的注意點

a:在 c 語言中如果我們直接寫一個小數,那么這個小數的類型是 double 類型的,所以可以直接將一個小數賦值給 1 個 double 變量.

b:float 只能精確保存不超過 16 位的小數.如果賦值的數據的有效位數據超過 16 位,那么超過的部分就不會精確保存.

4:為 char 型變量賦值的注意點

char ah;

ah = 'a';

a:char 變量只能存儲單個字符,并且這單個字符還要用單引號括起來

b:如果給的字符太多,只會保存最后1個.

給的字符太多

c:空格也是 1 個字符,所以也可以存儲 1 個空格

d:char 不能存儲1個中文,因為1個中文字符要占3個字節(jié),1個char類型的變量只能占1個字節(jié)!

不能存儲1個中文

使用printf函數先導入頭文件 #include <stdio.h>

使用 printf 函數輸出變量的值:

1:如何使用變量的數據?

什么時候想要使用變量的數據,就直接寫上變量的名字就可以使用了.

使用變量

上面的代碼 num3 就是 num1 和 num2 的和;

2:如何輸出變量的值?

使用 printf 函數就可以輸出變量的值.

3.printf 的兩種使用方式

格式 1:

printf("輸出信息");

雙引號的內容原樣輸出.

格式 2:

printf("格式控制字符串",變量列表);

在格式控制字符串中如果有地方要顯示變量的值,那么就使用 1 個占位符來占位.

輸出的變量的類型不同是不一樣的.

1).如果輸出的類型是 int 類型的,那么就使用 %d 占位符.

int num;

num = 100;

printf("num變量的值是:%d\n",num);

%d 代表這個地方不要原樣輸出,而是輸出 1 個整型變量的值.

%d

2).如果輸出的類型是 float 類型的,那么就使用 %f 占位符,默認輸出小數點后面6位.

%f

3).如果輸出的類型是 double 類型的,那么就使用 %lf 占位符,默認輸出小數點后面6位.

%lf

4).如果輸出的類型是 char 類型的,那么就使用 %c 占位符.

%c

***務必記住,輸出變量使用的占位符和變量的類型不匹配的話,那么輸出的結果就是錯誤的.***

類型不匹配

格式控制字符串中可以寫多個占位符:

多個占位符

注意:

后面的變量一定要按照順序來寫,因為在填占位符的時候是按順序來占位的,否則就會混亂.

混亂

ps:上面結果可能和你不同,在后面學習了進制才能說清,這里不深入討論

后面的變量的個數要和前面一致,如果沒有變量填的就是隨機值.

隨機值

總結:順序不對,類型不匹配,輸出結果就會有問題.

變量的問題:

1.為什么有了double為什么還要有float?

一個double類型變量占據8個字節(jié),一個float類型變量占據4個字節(jié),如果數據本身有效位數不超過7位,使用double來存儲顯得浪費,因為double變量代表的內存空間比float變量所占的內存空間要大.使用float節(jié)約內存空間.

2.定義變量的格式:

1)先定義,后賦值

int num;

num =10;

2)定義的同時進行賦值

int num2 =10;

注意事項:

在同一作用域內,不能重復定義變量(不能定義同名變量)

3.可以批量定義類型相同的變量:

//只定義不賦值

intnum1,num2,num3;

//定義同時賦值

int num1 =1,num2 =2,num3 =3;

return0;

注意,不要批量定義不同類型的變量.

4.定義一個變量,如果沒有給它賦值,那么里面的數據是隨機的數,為了保證程序不出問題,定義一個變量就要給這個變量賦予一個值.

5.變量中內容是可以改變的,注意,新的值直接覆蓋掉原來的值,不是疊加

int num1 =10;

num1 =20;

num1 =30;

printf("%d\n",num1);//30

return0;

6.可以把一個變量A的值賦值給另外一個變量B,此時A的值沒有改變

int num1 =10;

int num2 = num1;//"把A變量的值拷貝一份再賦值給B"

num2 =20;

printf("num1的值是%d,num2的值是%d\n",num1,num2);//10 20

7.變量使用之前一定要先定義

8.不要在同一對大括號內定義同名的變量

變量的命名規(guī)則以及規(guī)范:

命名規(guī)則:

1、只能由字母、數字、下劃線或者美元符號($)組成//int¥num;不行

2、不能以數字開頭//int 9num;//錯誤的

3、不能與關鍵字重名

4、嚴格區(qū)分大小寫//int num; ?int NUM;

命名規(guī)范:

駝峰命名法

學生數量

int studentCount;

int numOneSto;

int num_1;

int num_2;

關鍵字&標識符:

關鍵字就是具有特殊功能的系統(tǒng)保留字

標識符就是在程序中自定義的一些符合和名稱有什么用?

給要用的函數,數據等起名字,方便區(qū)分調用.

由26個英文字母的大小寫,10個阿拉伯數字0-9,下劃線組成,$符號

有什么特點?

1.只能由字母、數字、下劃線或者美元符號($)組成//int¥num;不行

2.不能以數字開頭//int 9num;錯誤的

3.不能與關鍵字重名

4.嚴格區(qū)分大小寫

5.起名要意義

6.便于識別(駝峰命名)

調整代碼快捷鍵

Control + i//自動調整代碼

Command + [ ?]//調整代碼左右移動

Command + option + [ ]//調整代碼上下移動

Command +方向左右建//移動光標

Command + shift +左右方向鍵/上下方向鍵 //選中代碼

printf高級用法:

1.%0md

1)如果變量的值小于4位,不足的地方用0補齊.

int num =100;

printf("num =%04d;\n", num);// 0100

2)如果變量的值大于4位,實際多少位就顯示多少位.

int num =10111;

printf("num =%04d;\n", num);// 10111

3)m可以是負數,如果位數不夠,不足的地方會在后面補齊.

int num =11;

printf("num =%-4d;\n", num);// 11

2.%.mf和%.mlf,指定小數點后面的位數,自動四舍五入,默認情況下,只會輸出小數點后6位.

double num =11.09432178;

printf("num =%.7lf\n", num);//11.0943218

printf("num =%.2lf\n", num);//11.09

3.%m.nf保留至少m個字符,包括小數點,同時保留n位小數點。

printf("%06.3f\n",1.0f);//---->01.000

printf("%08.3f\n",10.23f);//--->0010.230

float height =173.42f;

printf("身高是:%f\n",height);//173.419998 ? %.2f ?--> 173.42

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第1章 第一個C程序第2章 C語言基礎第3章 變量和數據類型第4章 順序結構程序設計第5章 條件結構程序設計第6章...
    小獅子365閱讀 10,723評論 3 71
  • 數據類型轉換: 1.當賦值符號兩邊的數據類型不同的時候,數據類型轉換是自動的,不需要程序員插手 當給 int 類型...
    Munin_閱讀 845評論 0 2
  • 一、框架 1、Mac系統(tǒng)及常用工具、進制;C數據類型、常量變量、運算符、表達式、格式化輸入輸出 2、關系運算符、邏...
    師景福閱讀 734評論 0 2
  • C語言大總結 一、基礎: 1、進制、位權、1字節(jié)等于8位(位是計算機的最小儲存單位,字節(jié)是計算機最小存儲單元)、十...
    霧中探雪閱讀 2,861評論 1 36
  • 我的童年是被放養(yǎng)長大的。所謂的放養(yǎng),即是說,爸媽時刻都在為了生計而奔波,只有在我闖禍了的時候會很嚴肅的揍我一頓。我...
    周不比爾閱讀 782評論 0 3