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指向指针所指向的内存

//注意

猜你喜欢

转载自blog.csdn.net/u013988442/article/details/83619601
p
P2P
今日推荐