初學者理解C語言指標

2021-10-03 23:05:25 字數 1312 閱讀 7800

1.指標定義:

指標是由能存放乙個位址的一組儲存單元 (通常是兩個或四個位元組 )構成。(《c語言程式設計》)。

指標是乙個值為記憶體位址的變數(或資料物件)正如char型別變數的值是字元,指標變數的值是位址。(《c primer plus》)

感覺第二種更容易理解,指標是變數 和char int類似。

3.*間接定址(間接引用,取值運算子):它將訪問指標所指向的物件。

int *p 與*p的區別

int a=0;

//int *p 與*p的區別

int *p=&a;

*p=a;

//對比

int b=1;

b=2;

//定義和運算時賦值型別都相同 而*p在 int *p=&a;中賦值為位址 *p=a; 中賦值為int型別的數

//這是因為*在不同位置的意思不同,

//在 int *p為定義指標 所以接收的值是指標

//在 *p中的*是取值運算子,代表的是p指標中的值

指標也有多種型別的。話不多說上**。

//指標型別 

char *c;

int *i;

float *f;

double *d;

//指標對應的資料型別

char c1;

int i1;

float f1;

double d1;

//拿c來距離 c與&c1型別大小相等 儲存的都是位址 *c與c1型別大小相等儲存的都是值

//c1直接通過位址找到值 *c是先根據c中存的位址找到對應的內存在找到值

printf("c=%d,&c1=%d,*c=%d,c1=%d\n",sizeof(c),sizeof(&c1),sizeof(*c),sizeof(c1));

printf("i=%d,&i1=%d,*i=%d,i1=%d\n",sizeof(i),sizeof(&i1),sizeof(*i),sizeof(i1));

printf("f=%d,&f1=%d,*f=%d,f1=%d\n",sizeof(f),sizeof(&f1),sizeof(*f),sizeof(f1));

printf("d=%d,&d1=%d,*d=d,d1=%d\n",sizeof(d),sizeof(&d1),sizeof(*d),sizeof(d1));

下圖紅線為*c的查詢方式。

指標(初學者)

1 位址和指標的概念 1 位址 記憶體區的每乙個位元組都有乙個編號,這就是 位址 如果在程式中定義了乙個變數,在對程式進行編譯時,系統就會給這個變數分配記憶體單元。在c語言中,對變數的訪問有兩種方式 直接訪問和間接訪問。直接訪問 如 a 5 間接訪問 如 scanf d a 呼叫函式時,把變數a的位...

C語言初學者總結

第一次練習 1 求1 2 3 100。迴圈 答案 include void main 2題目 輸入三個整數x,y,z,請把這三個數由小到大輸出。1 程式分析 我們想辦法把最小的數放到x上,先將x與y進行比較,如果x y則將x與y的值進行交換,然後再用x與z進行比較,如果x z則將x與z的值進行交換,...

C語言初學者建議

首先申明,本人不是什麼高手,但自認為對c還比較熟悉,可以給你提點建議 1 學習c語言,要從入門到精通,需要讀哪些書 從簡單的到難的排序,越詳細越好,最好都能注釋下選擇這本書的理由 入門階段 還是老譚那本。理由 雖然不能說它寫得有多好,但是你現在要做的是入門,要快速的掌握c的基本語法,這本書很好理解,...