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指標中的值
下圖紅線為*c的查詢方式。//指標型別
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));
指標(初學者)
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的基本語法,這本書很好理解,...