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 的時候不出現這個界面。那么點擊上次的菜單欄 ?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 的幾個最重要的工作區(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ū)域。
程序輸入的內容會輸出區(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 的。
這個時候,就會彈出新增的對話框,與前面一樣。
設置好一切必要的信息后就可以創(chuàng)建1個新的 Target 到當前這個項目之中了。
這個時候查看源代碼導航區(qū),會多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 小數賦值,會丟失精度
b:正確寫法
float f1;
f1 = 12.34f;
c:在 c 語言中如果我們直接寫一個小數,那么這個小數的類型是 double 類型的,如果我們希望這個小數是 1 個 float 類型的,那么就在這個小數的后面加 1 個 f/F 代表前面的這個小數的類型是 1 個 float 類型的
d:float 只能精確保存不超過 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é)!
使用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 個整型變量的值.
2).如果輸出的類型是 float 類型的,那么就使用 %f 占位符,默認輸出小數點后面6位.
3).如果輸出的類型是 double 類型的,那么就使用 %lf 占位符,默認輸出小數點后面6位.
4).如果輸出的類型是 char 類型的,那么就使用 %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