1. 程式人生 > >p與*p

p與*p

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int main(void){
    char *p = NULL;
    char buf[] = "abc"; //buf指向常量區“abc”,拷貝到棧區buf,編譯器檢測到是陣列,地址0x11,//注意這裡沒有指向關係
    printf("p1=%d\n", p);

    //改變指標變數的值
    p = buf; //p指向buf地址,指標指向誰,就把誰的地址賦值給指標,這裡p指向0x11,a的首地址
    printf("p2=%d\n", p);

    p = p + 1; //改變指標的指向,原來指標指標指向a的0x11, +1指向b
    printf("p2=%d\n", p);
    printf("buf=%s\n", p);

    printf("\n");
    system("pause");
    return 0;
}

 

 


// %s 指向記憶體裡面的內容
// %d 指向變數裡面的值

*p='a' 不會改變指標變數的值,只會改變所指的記憶體快的值
p與*p
p是變數,變數可以是地址,可以是數字
加上*p指向指標所指向的記憶體

//注意