前言
- 什麼是操作零碎:操作零碎是一種零碎軟件,用來管理計算機的軟硬件資源。
- 主流操作零碎:
挪動便攜式設備:Android、IOS、Windows Phone、Symbian(塞班)、Black Berry(黑莓) OS
PC團體電腦:Windows、Mac OS、Unix、Linux
- 什麼是IOS:IOS是一款由蘋果公司開發的挪動操作零碎(iOS運轉在挪動便攜式設備上)
- 什麼是iOS開發:就是開發運轉在iOS零碎上的使用或游戲軟件,如:QQ、淘寶、憤恨的小鳥等。
- Mac OS文件零碎:對文件停止管理的零碎叫文件零碎
UNIX常用命令:
檢查命令的詳細協助: man 命令名 (比方要看看 ls 命令的詳細用法,執行 man ls)
pwd (print work directory):打印以後目錄(任務目錄) 目錄 == 文件夾
cd (change directory)
cd / 進入根目錄
cd Users 進入用戶目錄
cd tarena 進入用戶的主目錄(Home Directory)
ls (list) :列出以後目錄下的一切內容
ls -a //-a 即all,列出目錄下的一切文件(包括以.掃尾的隱含文件)
ls -l //-l 羅列文件的詳細信息(文件名、權限、一切者、文件大小等)
mkdir 創立目錄(文件夾)
touch 創立文件
who 顯示以後用戶名
clear 清屏
touch xxx.m 新建xxx.m文件
open xxx.m 翻開xxx.m文件
在根目錄下運用ls列出一切內容:
Applications 放一切的使用順序
Library 使用順序需求的其庫等外容
�.network 網絡相關
System 零碎相關
Users 用戶的目錄
常用目錄或途徑:
主目錄(Home Directory):一個用戶有一個自己的主目錄,用戶在此目錄下擁有很高的權限。
/ 根目錄(Root Directory):只要一個,代表整個硬盤
特殊途徑: / 根途徑 ./ 以後���徑 ../ 上一級途徑
Desktop 桌面
Documents 文稿
Downloads 下載
Library 其他
Movies 影片
Music 音樂
Pictures 圖片
Public 公共目錄
留意:按一下tab鍵,可以自動補齊指令稱號、文件夾、文件夾名等。
C言語的特點
- 豐厚的運算符
- 豐厚的數據類型
- 可以直接操作硬件
- 高效的目的代碼
- 可移植性好
C言語的用處
- 編寫零碎軟件、圖形處置、單片機順序、嵌入式零碎開發甚至是用於科研
- 編寫游戲外掛
- 編寫Android順序
- 編寫iOS順序
C言語的編譯器
- gcc GNU Compiler Collection(GNU編譯器套件),GNU組織開發的開源收費的編譯器。
( gcc 原名為 GNU C Compiler,只能處置C言語,後來GCC很快地擴展,也可以處置C++、Objective-C、Java等其它言語)
- clang 開源的BSD協議的基於LLVM的編譯器;蘋果公司自己的編譯器。
(LLVM可以作為多種言語編譯器的後台來運用,前端用clang)
C言語的版本問題
- 1983年美國國度規范局(American National Standards Institute,簡稱ANSI)成立了一個委員會,開端制定C言語規范的任務
- 1989年C言語規范被同意,這個版本的C言語規范通常被稱為ANSI C
- 1999年,國際規范化組織ISO又對C言語規范停止修訂,在根本保存原C言語��征的根底上,針對應該的需求,添加了一些功用,命名為C99
- 2011年12月8日,ISO正式發布C言語新的國際規范草案:C11
C言語的官方規范
- ANSI C / C89規范:1989年,美國國度規范協會(ANSI)發布了第一個官方規范(簡稱 C89規范 或 ANSI C)。
- C99規范:1999年,國際規范化組織(ISO)和國際電工委員會(IEC)發布了C言語的新規范。
- C11規范:2011年12月8日,國際規范化組織(ISO)和國際電工委員會(IEC)再次發布了C言語的新規范。
C言語順序的運轉進程
一、編譯:編譯是由編譯器來執行的,次要做的時語法反省任務;將C源順序翻譯成計算機能辨認的0和1。
- 運用什麼編譯器:Xcode3運用GCC,Xcode4運用LLVM編譯器(前端用clang)
- 如何運用clang編譯器編譯順序:
- 在終端中輸出:cc –c 文件名.c
- 編譯成功,會生成.o目的文件
- 編譯器的錯誤和正告功用
- 假如代碼有語法問題,編譯器會直接報錯。並指出錯誤的個數和詳細行號。
- 只需有1個錯誤,順序就不能編譯成功,也不會生成.o文件
- 正告信息只是編譯器的一些建議,並不影響編譯經過
二、鏈接:將自己編譯好的.o目的文件和C順序庫函數組合在一同,生成可執行文件。
由鏈接器完成,clang編譯器外面曾經包括了鏈接指令
- 在終端中輸出:cc 文件名.o
- 鏈接成功,會生成a.out可執行文件
三、運轉:兩種運轉方式:
- 直接雙擊翻開a.out文件
- 終端中運用 ./a.out 指令
修正文件內容之後,一定要重新編譯、鏈接,再運轉。
其他clang指令:
- 修正可執行文件a.out的稱號:cc xxx.o -o 新文件名
- 一同編譯、鏈接:cc xxx.c

整個順序的運轉進程:編寫源順序==>預處置==>編譯器==>銜接器==>可執行
留意:gcc可換為clang(CC); gcc -E test.c 檢查編譯前文件內容 (-E的意思是:做預處置)
- 預處置:gcc -E test.c -o test.i (預處置的後果可以用-o的方式保管到一個文件test.i中)
- 編譯:gcc -c test.i //編譯成功,會生成.o目的文件; 1,2可以兼並:gcc -c test.c
- 銜接:gcc test.o
- 執行:./a.out
- 簡寫:gcc test.c (1,2,3的兼並)
- 執行:./a.out
用Xcode創立項目

- Product Name:產品稱號
- Organization Name:公司稱號
- Company Identifier :公司獨一標識,普通為公司官網網址的倒序
- Bundle Identifier:產品獨一標識
- Type(Language):項目言語類型
C言語順序是由函數構成的,C順序的入口是main函數。函數外部代碼的執行順序,是從上到下執行的,如瀑布一樣。
錯誤類型:
- 語法錯誤:編譯器會直接報錯
- 邏輯錯誤:沒有語法錯誤,只不過運轉後果不正確
關鍵字
C言語順序是由英文單詞構成的,其中有些單詞被C言語賦予了特殊含義,那麼這些單詞就是關鍵字。
C言語的零碎保存字(32個關鍵字)
- 根本數據類型(5個):void、int、float、double、char
- void:聲明函數無前往值或無參數,聲明無類型指針,顯示丟棄運算後果
- int:整型數據,通常為編譯器指定的機器字長
- float:單精度浮點型數據,屬於浮點數據的一種
- double:雙精度浮點型數據,屬於浮點數據的一種
- char:字符型類型數據,屬於整型數據的一種
- 類型修飾關鍵字(4個):short、long、signed、unsigned
- short:修飾int,短整型數據,可以省略被修飾的int
- long:修飾int,長整型數據,可以省略被修飾的int
- singed:修飾整型數據,有符號數據類型
- unsigned:修飾整型數據,無符號數據類型
- 復雜類型關鍵字(5個):struct、union、enum、typedef、sizeof
- struct:構造體聲明
- union:共用體聲明
- enum:枚舉聲明
- typedef:聲明類型別名
- sizeof:失掉特定類型或特定類型變量的大小
- 存儲級別關鍵字(6個):auto、static、register、extern、const、volatile
- auto:指定為自動變量,由編譯器自動分配及釋放,通常在棧上分配空間;修飾部分變量,默許省略不寫
- static:指定為靜態變量,分配在靜態變量區,修飾函數時,指定函數作用域為文件外部
- register:指定為存放器變量,建議編譯器將變量存儲到存放器中運用,也可以修飾函數形參,建議編譯器經過存放器而不是堆棧傳遞參數
- extern:指定對應變量為內部變量,即標示變量或許函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋覓其定義
- const:與volatile合稱“cv'特性”,指定變量不可被以後線程/進程改動(但有能夠被零碎或其他線程/進程改動)
- volatile:與cost合稱“cv特性”,指定變量的值有能夠會被零碎或其他線程/進程改動,強迫編譯器每次從內存中獲得該變量的值
- 流程控制關鍵字(12個)
- 跳轉構造(4個):return、continue、break、goto
- return:用在函數體中,前往特定值(或void值,即不前往值),作用:完畢函數
- continue:完畢以後循環,開端下一輪循環
- break:跳出以後循環或switch構造
- goto:無條件跳轉語句
- 分支構造(5個):if、else、switch、case、default
- if:條件語句,前面不需求放分號
- else:條件語句否認分支(與if連用)
- switch:開關語句(多重分支語句)
- case:開關語句中的分支標志
- default:開關語句中的“其他”分支,可選
for:for循環構造,for(1;2;3)4;的執行順序為1->2->4->3->2…循環,其中2為循環條件
do:do循環構造,do 1 while(2);的執行順序是1->2->1…循環,2為循環條件
while:while循環構造,while(1)2;的執行順序是1->2->1…循環,1為循環條件
標識符
標示符就是順序員自己在順序中起的一些名字。(罕見的是:變量的稱號和函數的稱號)
- 命名規則:(一定要恪守)
- 只能由26個英文字母的大小寫、10個阿拉伯數字0~9、下劃線_組成
- 嚴厲區分大小寫,比方test和Test是2個不同的標識符
- 命名標准:(最好要恪守)
- 盡量起個有意義的稱號,普通用英文單詞,留意長度適中,可讀性要強。
- 假如標識符中含有多個單詞,可以運用駝峰標識(除開第一個單詞,前面每個單詞的首字母都是大寫):
- firstName、myFirstName,或許運用下劃線_來銜接:first_name、my_first_name
- 普通狀況下,
(如:UserName PassWord showMessage isPrint)
數據
- 靜態數據:是指一些永世性的數據,普通存儲在硬盤中。
- 靜態數據:是指在順序運轉進程中,靜態發生的暫時數據,普通存儲在內存中。
- 當運轉某個順序(軟件)時,整個順序就會被加載到內存中,在順序運轉進程中,會發生各種各樣的暫時數據,這些暫時數據都是存儲在內存中的。當順序中止運轉或許計算機被強迫封閉時,這個順序發生的一切暫時數據都會被肅清。
- 你能夠會問:既然硬盤的存儲空間這麼大,為何不把一切的使用順序加載到硬盤中去執行呢?有個次要緣由是內存的訪問速度比硬盤快N倍。
- 數據的轉換
- 靜態數據到靜態數據的轉換(也就是從磁盤加載到內存)
- 靜態數據到靜態數據的轉換
- 數據的大小
- 不論是靜態還是靜態數據,都是0和1組成的。
- 數據都有大小,靜態數據就會占用硬盤的空間,靜態數據就占用內存的空間
- 數據越大,包括的0和1就越多,比特位和字節
- 計量單位:
1 B = 8 bit
1 KB = 1024 B, 1 MB = 1024 KB
1 GB = 1024 MB, 1 TB = 1024 GB
變量
是內存中的一片空間。用來保管順序運轉時期的暫時數據。
有名字,有類型
有名字,就可以反復運用
變量的類型決議著變量占用多大的內存空間。
int x; 定義一個int類型的,名字叫x的變量
第一次給變量叫初始化
最好不要運用沒有初始化過的變量
#include <stdio.h>
int main() {
int x;//x是變量名,int是變量的類型
printf("x=%d\n", x); //x=1606422582,渣滓數據
x = 10; //將10保管到x中,第一次賦值相當於初始化
x = 20; //將20保管到x中,當前就叫給變量賦值
int y = 30;//定義變量的同時初始化
printf("y=%d\n", y);
return 0;
}
變量的類型
分兩種:根本類型, 自定義類型
- 根本類型
整形:
有符號:可以是負數,也可以是正數。
int // signed int
short int 短整形
long int 長整形
long long int
無符號:只能是負數,不能是正數
unsigned int
unsigned short int
unsigned long int
unsigned long long int
特殊整形:
char
unsigned char
浮點型:全部是有符號
float
double
long double
- 自定義類型: struct, union, enum
- 數據的保管(二進制)
1Byte = 8bit
1KB = 1024Byte
1MB = 1024KB
…
- 類型的區別
short int 2Bytes 16bit
int 4Bytes 32bits
long int 8Bytes 64bit(64位零碎) 4Bytes(32位零碎)
long long int 16Bytes
占用內存空間多,表示的數據的范圍就廣
留意:int類型後面有其它修飾時,int可以省略。
bool 表示布爾運算,只包括true和false兩個數值。需求在文件中參加如下語句: #include <stdbool.h>
數據類型
對應內存區域,其值可變,變量有相應的類型和值。
變量類型分為字符型char、整數型int、浮點型float/double、指針、構造、結合等類型。
#include <stdio.h>
int main() {
float f=3.14;
printf("f=%f\n", f);//f=3.140000
double d=1.73;
printf("d=%lf\n", d);//d=1.730000;默許都打印6位小數
printf("f=%.2f\n", f);//保存兩位小數
printf("sizeof(float)=%ld\n", sizeof(float));
//表示數據的范圍很大,外部運用了迷信計數法來表示
//3.14:3.14×10^0
//0.00314:3.14×10^-3
//省略有意義0
f=.314;//f=0.314000
f=3.;//f=3.000000
f=3.14E-3;//3.14×10^-3;
printf("f=%f\n", f);//f=0.003140
f=3.14F;//float類型的字面值前面加f,F
f=3.14f;
f=0x314F;//F代表十六進制的F
return 0;
}

【iOS開發入門 ☞ C言語系列一】的相關資料介紹到這裡,希望對您有所幫助!
提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!