改變整形變數所佔儲存空間
short2
位元組%hd
int4
位元組%d %i
long8
位元組%ld
long long8
位元組%lld
(主要為了解決
32位機器問題)
char
型別常量的儲存問題
sizeof
(『a』
) ---
à先找到
『a』的
ascii
碼值97
---à把
97安裝
int型別進行
----
à把四個位元組儲存到記憶體中
ch=』a』;
---à97
---à把
97轉化為2進製
01100001
乙個位元組
----
à把乙個位元組儲存到記憶體中
總結:char
型別的常量和變數的儲存方式是不一樣的
乙個位元組的範圍:
0-127
用作常見的字元的
ascii碼
陣列的基本概念:把具有相同型別的若干變數按有序的形式組織起來。這些排序排列的同類資料元素的集合稱為陣列。
陣列的幾個名詞:
陣列:一組具有相同資料型別的資料有序的集合
陣列元素:構成陣列的資料
陣列的下標:是陣列元素的位置的乙個索引或指示
陣列的維度:陣列新元素下標的個數,可分為一維,二維,三維,多維
陣列按儲存的內容分類:
數值陣列:儲存數值的
字元陣列:用來存放字元
』a』
指標陣列:用來存放指標(位址)的
結構陣列:用來存放乙個結構體型別的資料
按維度分類:
一維陣列
二維陣列
多維陣列
7. 一維陣列:如果乙個陣列的所有元素都不是陣列,那麼該陣列稱為一維陣列
定義---
初始化---
初始化---使用1
)一維陣列的定義方式:
型別說明符
陣列名[
常量表示式];
2)定義注意事項:
a 陣列的長度可以是乙個常量,也可以是常量表示式
[3+3]
b 陣列名的命名規則:嚴格按照識別符號的命名規範
c 陣列名不能和其他變數同名
d 陣列的長度不可以為乙個變數
e 陣列的長度可以使用
巨集定義f
定義陣列的時候,還可以定義普通變數。
int x,y
,a7[4];
3)一維陣列的初始化:
初始化:陣列初始化賦值是指在陣列定義時給陣列元素賦予初值。
定義的同時進行初始化
常見形式:
型別說明符
陣列名[
常量表示式
]=定義的同時完全初始化
int a[3]=;
int a[ ]=;//
陣列個數為大括號裡賦值的個數
定義的同時進行部分初始化
int a2[3]=
;int a[10]=;//
下標為3
的值為23
,下標為
8的值為
35先定義陣列,然後再初始化
int a5[4]; a5[0]=1;//
給陣列第乙個元素賦值124
)注意:如果陣列沒有初始化,這時候陣列的元素是有值的,值不確定
如果進行了部分初始化,這時候初始化那部分元素自動初始化為05
)一維陣列的引用(訪問):陣列名[下標
]就可以訪問陣列的元素
陣列元素訪問一般形式:
陣列名[下標]
下標:陣列元素的編號,陣列的編號從
0開始;乙個長度為
n的陣列,下標範圍:
0~n-1
如果要逐個訪問陣列的元素的話,這就叫陣列的遍歷、
for(
int i=0
;i<3;i++)
6)一維陣列的儲存方式:
a 計算機會給陣列分配一塊連續的儲存空間
b 陣列名代表陣列的首位址,從首位址位置,一次存入陣列的第乙個,第二個、、、、第
n個元素
c 每個元素占用相同的位元組數(取決於陣列型別)
d 並且元素之間的位址是連續的 7
)a 陣列內部的元素位址是連續的,先定義的陣列分配在高位址
b 陣列名存放的是陣列的首位址,等於陣列的第乙個元素的位址 c
陣列名是乙個常量,儲存的就是陣列的首位址
d chars +sizeof(char)*下標8
)一維陣列長度計算的方法:
a 陣列在記憶體中占用的位元組數:儲存個數
*sizeof
(資料型別)
求陣列的總位元組數:
sizeof
(陣列名):
sizeof(a
);b
陣列的長度
=陣列占用的總位元組數
/陣列元素占用的位元組數
陣列元素作為函式引數:
陣列元素作函式實參:陣列元素就是下標變數,它與普通變數並無區別。在發生函式調動時,把作為實參的陣列元素的值傳送給形參,實現單向的值傳遞。
陣列用作函式引數的形式有兩種:
a 一種是把元素(下標變數)用作實參使用
b
一種是把陣列名作為函式的形參和實參使用
陣列名作為函式引數:
用陣列名作為函式引數與陣列元素作實參有幾點不同
用陣列元素作函式引數不要求形參也必須是陣列元素,但是用陣列名作函式引數時,則要求形參和實參都必須是同型別陣列
陣列名作為函式引數時,是位址傳遞,不是值傳遞。與形參記憶體空間相同
在變數作函式引數時,所進行的值穿釘是單向的。即只能從實參傳向形參,不能從形參傳回實參。形參的初值和實參相同,而形參的值發生變化後,實參並不變化,兩者的終值是不同的
注意點:
a形引數組和實參陣列的型別和長度必須一致,否則將引起錯誤、
b 形引數組的長度可以不寫
c 多維陣列可以作為函式的引數。在函式定義時對形引數組可以指定每一維的長度,也可省去第一維的長度,因此,以下寫法是合法的:
int ma
(int[3][10]
)或int ma
(a[10]
) d
所有位址,都是
8個位元組。所以,陣列名作為函式引數後,陣列的長度資訊會丟失
程式設計師養成記(第八天)
輸入任意數的乘法口訣表 define crt secure no warnings include include include include int multiplication int n printf n int main 用指標交換兩個整形變數 define crt secure no ...
android基礎 第八天
可航訓練營 為幫助大家更好的 系統性的學習 android 一 有序廣播和無序廣播 密碼 2dea 二 有序廣播指明廣播接收者 密碼 qqmg 三 廣播 許可權的應用 密碼 wfcm 四 優先順序相同情況下,廣播接收者的順序 密碼 4vb2 五 廣播接收者生命週期 密碼 bx54 六 廣播練習 密碼...
學習iOS的第八天
今天主要是講了復合,依賴,class關鍵字 還有學了 氣泡排序 氣泡排序應該很重要,老師講了乙個下午 這是我自己做的 import int main int argc,const char argv int len sizeof a sizeof 0 int i,j 控制變數 int n for i...