IOS开发学习记录第4天之C语言学习
(一)、今天我們要學(xué)習(xí)的主要包括一下內(nèi)容:
1、標(biāo)示符概念及其命名原則
?在C語(yǔ)言中,符號(hào)常量,變量,數(shù)組,函數(shù)等都需要一定的名稱(chēng),我們把這種名稱(chēng)稱(chēng)之為標(biāo)識(shí)符。
? ?? ?標(biāo)識(shí)符劃分:關(guān)健字、預(yù)定義標(biāo)識(shí)符和用戶(hù)標(biāo)識(shí)符
?命名規(guī)則:
(1)、只能由字母、數(shù)字、下劃線或者美元符號(hào)($)組成
(2)、不能以數(shù)字開(kāi)頭
(3)、不能與關(guān)健字重名
(4)、嚴(yán)格區(qū)分大小寫(xiě)
?命名規(guī)范:
(1)、起一個(gè)有意義的名字(比如用戶(hù)名:userName)
(2)、駝峰命名(如果一個(gè)名稱(chēng)有多個(gè)單詞組成,第一個(gè)單詞首字母小寫(xiě)其他單詞首字母大寫(xiě),或者每個(gè)單詞首字母都大寫(xiě))
?必須是字母、數(shù)字、下劃線組成,且不能依數(shù)字開(kāi)頭,標(biāo)識(shí)符名稱(chēng)不應(yīng)該和關(guān)鍵字相同
2、C語(yǔ)言中得注釋介紹及使用?
?(1)、//雙斜杠注釋,又稱(chēng)單行注釋 ?可以注釋一行 ?且被注釋的代碼不參與編譯器編譯,也就是說(shuō)編譯器遇到帶注釋的代碼塊
?會(huì)直接跳過(guò)?
? ? ? ? (2)、/**/多行注釋,比如:/*我是被注釋的內(nèi)容,程序執(zhí)行的時(shí)候直接跳過(guò)此部分內(nèi)容*/
3、數(shù)據(jù)及數(shù)據(jù)類(lèi)型
? ? ? 什么是數(shù)據(jù)類(lèi)型:
?生活中我們時(shí)時(shí)刻刻都在跟數(shù)據(jù)打交道,比如我們的年齡,身高,體重,平時(shí)生活中處處見(jiàn)到的視頻、文檔、音樂(lè)等等這些都
?可稱(chēng)之為數(shù)據(jù),計(jì)算機(jī)為了存儲(chǔ)這些不同的數(shù)據(jù),就定義了不同的數(shù)據(jù)類(lèi)型。
?數(shù)據(jù)的計(jì)量單位:
1 B (Byte字節(jié))=8 bit (位)
1 KB(KByte)=1024 B
1 MB=1014 KB
1 GB= 1024 MB
1 TB= 1014 GB
C語(yǔ)言中常用的數(shù)據(jù)類(lèi)型如下圖:
4、數(shù)據(jù)類(lèi)型的內(nèi)存占用及范圍
? 數(shù)據(jù)類(lèi)型占用字節(jié)說(shuō)明如下圖:
在這里我們需要知道的是再M(fèi)ac 電腦中從10.7以后 都是64位,也就是說(shuō)我們需要記住Mac 10.7版本以后的電腦中 char 占用
字節(jié)是1個(gè)字節(jié),int、float類(lèi)型占用4個(gè)字節(jié)、double類(lèi)型占用8個(gè)字節(jié)、short類(lèi)型占用2個(gè)字節(jié)、long、long long、以及void
都是占用8個(gè)字節(jié)
? ?不同類(lèi)型表示的范圍
5、常量的概述及分類(lèi)及表示方法
?C語(yǔ)言有豐富的數(shù)據(jù)類(lèi)型,在開(kāi)發(fā)中,一般用常量或者變量來(lái)表示這些數(shù)據(jù)類(lèi)型,"量"表示數(shù)據(jù)。常量,則表示一些固定的
?數(shù)據(jù),也就是不能改變的數(shù)據(jù)。比如人的出生日期、身份證號(hào)等。
?常量分類(lèi):
? ?(1)、整型常量,也就是整常數(shù)。
?二進(jìn)制(比如:0b0001)
?八進(jìn)制(比如:0123)
?十進(jìn)制(比如:100)
?十六進(jìn)制 (比如:0x123)
(2)、實(shí)型常量
?單精度 (比如:2.3f)
?雙精度(比如:'a')
(3)、字符型常量
?普通字符
?轉(zhuǎn)義字符?
(4)、字符串常量,注意字符串常量和字符型常量是不一樣的
(5)、字符串常量
?用雙引號(hào)括起來(lái),里面可以是字符、數(shù)字、符號(hào)(比如:"abd","a","***")
(6)、特殊的字符常量(轉(zhuǎn)義字符)如下圖:
?
6、變量的概念及定義
(1)、定義(聲明)
? 格式1:變量類(lèi)型 ? 變量名稱(chēng);
??比如:int a; ? ? float b;? ? char ch;
? 格式2:變量類(lèi)型 ? 變量名稱(chēng),變量名稱(chēng);
??比如:int a, b;
(2)、變量命名的規(guī)范
? 嚴(yán)格遵守標(biāo)識(shí)符的命名原則
? 變量名要盡可能的望文知意、簡(jiǎn)潔
? 變量名要按照駝峰命名法(遵守命名規(guī)范)
7、變量的初始化和引用
(1)、變量的初始化
? int a=10; ?int a=10,b=20,c=30;
? int a=10; ?int &b; a=b;?
8、變量的作用域
?(1)、C語(yǔ)言中所有變量都有自己的作用域,申明變量的類(lèi)型不用,其作用域也不同,C語(yǔ)言中的變量按照作用域可以分為兩種,
一種是局部變量,一種是全局變量。
? 根據(jù)C語(yǔ)言的說(shuō)法,局部變量:定義在方法內(nèi)部的變量叫局部變量;全局變量:定義在方法外部的變量叫全局變量。局部
? 變量和全局變量的主要區(qū)別在于二者的生存周期不同。
? 全局變量的生存周期:靜態(tài)分配內(nèi)存,程序運(yùn)行期間常駐內(nèi)存,直到程序運(yùn)行結(jié)束。
? 局部變量的生存周期:動(dòng)態(tài)分配內(nèi)存,位于線程堆棧中。
? 另外全局變量和局部變量的作用域不同,舉例來(lái)說(shuō),類(lèi)中的變量作用域在當(dāng)前類(lèi)中,類(lèi)方法中的變量作用域在當(dāng)前方法中
? 全局變量的使用場(chǎng)景:多個(gè)地方需要使用,大家共享。
? 局部變量的使用場(chǎng)景:只在當(dāng)前這個(gè)地方使用。
? 為了更清楚的區(qū)別局部變量和全局變量之間的關(guān)系,我們看段代碼,如下圖:
? ? ? ? 9、變量為什么要區(qū)分類(lèi)型
(1)、為了更合合理使用內(nèi)存,不同的數(shù)據(jù)類(lèi)型需要存儲(chǔ)的空間也是不一樣的
(2)、數(shù)據(jù)的存儲(chǔ)格式不一樣,int 4字節(jié),float 4字節(jié),double 8字節(jié)
(3)、不同數(shù)據(jù)類(lèi)型他們的運(yùn)算方式可能不一樣的
10、printf函數(shù)介紹及常見(jiàn)用法
printf函數(shù)是一個(gè)標(biāo)準(zhǔn)的庫(kù)函數(shù),表示打印內(nèi)容到控制臺(tái),和scanf函數(shù)是一對(duì),scanf是接收用戶(hù)輸入的內(nèi)容到程序中
printf函數(shù)的調(diào)用格式為:
printf("格式控制字符串",輸出項(xiàng)列表);比如 printf("Hello world\n");
%md問(wèn)題(設(shè)置域?qū)捇蛘呶粩?shù)) ?m是一個(gè)數(shù)字,可以為正也可以為負(fù)數(shù)
printf("%md",10) ; 比如m=5, 打印出來(lái)的值為: ? 10(其中10前還有三個(gè)空格),如果為-5 則在10后面會(huì)補(bǔ)三個(gè)空格。
? ? ? ? ? ? ? ? printf("%0md",10); 比如m=5, ? 則打印出來(lái)就為00010;
11、%f輸出精度問(wèn)題
對(duì)于單精度數(shù),使用%f格式符輸出時(shí),僅前7位是有效數(shù)字,小數(shù)6位。
?? ?對(duì)于雙精度數(shù),使用%lf格式符輸出時(shí),前16位是有效數(shù)字,小數(shù)6位。
12、scanf函數(shù)介紹及使用
scanf函數(shù)也是一個(gè)標(biāo)準(zhǔn)的函數(shù)庫(kù)
scanf("格式控制字符串",輸入項(xiàng)列表); ? 比如 scanf("%d,%d",5,10);
13、sacnf使用注意事項(xiàng)
scanf函數(shù)原型包含在標(biāo)準(zhǔn)輸入輸出頭文件"stdio.h"中,用于接收鍵盤(pán)輸入的內(nèi)容
格式:scanf("格式控制字符串",輸入項(xiàng)地址列表);
?
? ? ? ?int a=0; ? scanf("%d",&a); ? 定義一個(gè)int類(lèi)型的變量a, 用來(lái)接收用戶(hù)輸入的值。 ? ??
14、scanf函數(shù)原理
當(dāng)用戶(hù)輸入內(nèi)容后,用戶(hù)輸入的內(nèi)容會(huì)被存放到scanf的輸入緩沖區(qū)中,然后scanf函數(shù)會(huì)根據(jù)格式控制的字符要求,從輸入
緩沖區(qū)依次取它想要的內(nèi)容如果從緩沖區(qū)中取得的內(nèi)容和我的格式要求一致,則把值存放到變量中,如果格式不一致,則
不修改變量的值(比如:int a=10,但是我們輸入的時(shí)候輸入的是a,那么最后打印出來(lái)的值就還會(huì)是10),如果scanf緩沖區(qū)
還有內(nèi)容,則scanf不會(huì)提示我們?cè)俅屋斎搿?/span>
?
轉(zhuǎn)載于:https://www.cnblogs.com/studyrecord/p/4639376.html
總結(jié)
以上是生活随笔為你收集整理的IOS开发学习记录第4天之C语言学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在Windows下像Mac一样优雅开
- 下一篇: about hamout cloudra