p與*p
阿新 • • 發佈:2018-12-05
#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指向指標所指向的記憶體
//注意