C语言整型指针理解

初学,有错误希望大家指出

#include<stdio.h>

void test_pointer();

int main(){
    test_pointer();
    return 0;
}

/* 测试指针 */
void test_pointer()
{
    int a = 100;
    int *p_a = &a;
    printf("*p_a = %d\n",*p_a);//100 带星号去引用指针的时候引用的是指针指向的变量
    printf("p_a = %p\n",p_a);//0028FF24不带星号去引用指针的时候引用的是内存地址的值
    p_a++;
    printf("p_a++ = %p\n",p_a);//0028FF28 
    printf("after p_a++. *p_a= %d \n",*p_a);//2686824 对指针地址+1操作的时候会指向一个不可预知的值

    int b = 100;
    int *p_b = &b;
    *p_b = *p_b+1;
    printf("after *p_b++.  *p_b=%d\n",*p_b);//101 
    printf("b= %d",b);//101 带星号的指针进行修改操作会改变指针指向地址的变量

    b++;
    printf("*p_b = %d\n",*p_b);//102  
    printf("p_b=%p\n",p_b);//0028FF20指针指向的变量发生变化的时候指针会变化

}

猜你喜欢

转载自blog.csdn.net/csdn_meng/article/details/78457227