資料在記憶體中用二進位制表示
記憶體條中包含了上億個電子元器件,這些元器件就是電路
電路的電壓會變化,要麼是0v,要麼是5v,只有這兩種電壓。
乙個元器件只有2種狀態,5v是通電,用1表示;0v時是斷電,用0表示
一般我們將8個元器件稱為乙個單位。
乙個元器件稱為乙個位元(bit)或1位(1bit只能存放0或1)
八個元器件稱為1位元組(byte)
10248個元器件就是1024個位元組,稱為1kb
102410248個元器件就是1024kb,稱為1mb
1024102410248個元器件就是1024gb,稱為1gb
int型:4個位元組
double型:8個位元組
float型:4個位元組
char型:1個位元組
1.**區—存放**
2.全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。 - 程式結束後由系統釋放。
3.棧區(stack)----系統自己開闢,系統自己釋放, 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等
4.堆區:動態開闢的記憶體,手動開闢,手動釋放
把記憶體以單個位元組為單位分開,每乙個位元組編號,這就是位址
取位址運算子&
一段記憶體空間中第乙個儲存單元的位址
1.一維陣列
aint a
a是指向a[0]這個一維陣列
2.二維陣列
a指向的是a[0]這個一維陣列
a[0]指向的是a[0][0]這個元素
指標變數的定義: 資料型別* 變數名
指標變數的賦值:int a; intp=&a;
注:在定義指標變數時,intp只是表示p是乙個指標變數
非定義時,*為取值運算子,即對p所指向的記憶體值取值
等於指標的偏移,以指標所指向的型別的空間單位進行偏移
char *p;p+1; 加乙個位元組
int p1;p1+1; 加4個位元組
doublep2;p2+1; 加8個位元組
int a[5];
int *p=a;(a=&a[0])
1.給指標元素賦值
a[3]=10;
*(a+3)=10;
或int * p=a+3; *p=10
2.陣列的遍歷
int a[4]=;
for(i=0;i<4;i++)
2.for(int * p=a;p
二維陣列可以分為多個一維陣列
[ ]是變址運算子= *( + )
b[j]= * (b+j)
a[i][j]= * (a[i]+j)= *( *(a+i)+j)
在無法確定其大小的時候,用陣列很難解決時用動態陣列
C語言指標學習總結
一 概念 二 舉例說明 首先是指標的定義 int p p是乙個整型變數。int p p是乙個指標變數,指向整型變數。int p p是乙個陣列,陣列裡儲存的是指向整型變數的指標 int p p是乙個指標,指向整型陣列的首位址。int p p是乙個函式,返回值是整型指標 int p p是乙個指標,指向乙...
c語言指標學習總結
在指標 int p或char p,中 p是內容,p是指標,呼叫 p 時候類似間接定址 先看個簡單 指標實驗 在linux上gcc編譯執行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...
C語言指標學習總結
上學的時候學習c語言,最煩的就是裡面指標,可是指標也恰恰是c語言的靈魂。最近在重溫資料結構的內容,因為大多資料結構的教材都是用c語言描述的,而資料結構中也大量的用到了指標的內容,所以我就在這篇筆記中記錄一下我這週複習c語言的心得。先看看百科上對指標的描述。在電腦科學中,指標 pointer 是程式語...