計算機位數基本知識:
32位:32根地址線/數據線 正電(0)和負電(1)
32個二進制做爲可能性一共2^32種
好比:
00000000000000000000000000000001=1
所對應的是爲1的地址
每一個小區域(小分區)爲1字節ide
用%p輸出&a的地址
具體代碼:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>指針
int main(){
int a = 10;
printf("%d\n", a);
printf("%p\n", &a); //輸出a的地址 010FFA38 所得爲16進制地址
return 0;
}
int p = &a;//p用來存放地址 p,p爲指針變量(指針)即地址存到p中
printf("%p\n", &a);
printf("%p\n", p); 兩個打印結果相同
:解引用操做符:
*p = 20;//即爲把20賦給a
具體代碼:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>it
int main(){
int a = 10;
int p = &a;
printf("%d\n", a);//10
p = 20; //a=20
printf("%d\n", a);//20
printf("%d\n", p);//20
return 0;
}
注意:
什麼類型的變量與地址類型是對應的
int a; int p=&a;
char ch; char *p=&ch;io
在32位中每一個指針變量都是32個bit即4個字節
因此:
int a = 10;
int *p = &a;
printf("%d\n", sizeof(p)); //輸出爲4且不管是int char......都是4
64位指針大小就是8個字節class