c语言指针初认识

1.指针赋值

#include<stdio.h>
int main() {
    //创建一个int变量
    int a = 10;
    //创建一个int类型的指针变量
    int * p_a;
    //使用&符号取变量a的地址赋值给p_a
    p_a = &a;
    return 0;
}

2.修改指针地址所对应的值

#include<stdio.h>
int main() {
    //创建一个int类型的变量
    int a = 10;
    //创建一个int类型的指针变量
    int * p_a;
    //使用&符号取变量a的地址赋值给p_a
    p_a = &a;
    printf("a的值是:%d\n",a);
    printf("p_a的值是:%p\n",p_a);
    printf("a的地址是:%p\n",&a);
    printf("p_a的地址是:%p\n",&p_a);
    //*p_a是代表p_a地址对应的值是多少
    printf("p_a地址所对应的值是:%d\n", *p_a);
    *p_a = 1000;
    printf("修改p_a地址所对应的值后是:%d\n",*p_a);
    printf("--------------------------");
    return 0;
}

输出结果:

a的值是:10
p_a的值是:0033F9E8
a的地址是:0033F9E8
p_a的地址是:0033F9DC
p_a地址所对应的值是:10
修改p_a地址所对应的值后是:1000
————————–

3.修改变量所对应的指针地址

#include<stdio.h>
int main() {
    //创建一个int变量num1
    int num1 = 1024;
    //创建一个int变量num2
    int num2 = 2048;
    //创建一个int指针变量p_num1并指向num1的地址;
    int * p_num1 = &num1;
    //创建一个int指针变量p_num2并指向num2的地址;
    int * p_num2 = &num2;
    printf("num1的值为:%d\tp_num1的地址是:%p\n",num1,p_num1);
    printf("num2的值为:%d\tp_num2的地址是:%p\n",num2,p_num2);

    //修改p_num2的值为p_num1的值
    p_num2 = p_num1;
    printf("修改后的值:\n");
    printf("num1的值为:%d\tp_num1的地址是:%p\n", num1, p_num1);
    printf("num2的值为:%d\tp_num2的地址是:%p\n", num2, p_num2);
    //对num2进行操作
    *p_num2 = 111000;
    printf("修改后的值:\n");
    printf("num1的值为:%d\tp_num1的地址是:%p\n", num1, p_num1);
    printf("num2的值为:%d\tp_num2的地址是:%p\n", num2, p_num2);
    return 0;
}

运行结果:

num1的值为:1024 p_num1的地址是:0033F7B0
num2的值为:2048 p_num2的地址是:0033F7A4
修改后的值:
num1的值为:1024 p_num1的地址是:0033F7B0
num2的值为:2048 p_num2的地址是:0033F7B0
修改后的值:
num1的值为:111000 p_num1的地址是:0033F7B0
num2的值为:2048 p_num2的地址是:0033F7B0

从上面的运行结果可以看出 num2的值是没有改变的,改变的是p_num2所对应的值,即将p_num2所指向的地址修改为num1所指向的地址。
我们操作p_num2实际是对num1变量进行的操作。

2018年3月25日16:34:47 bigniu原创
QQ:201309512

发布了23 篇原创文章 · 获赞 24 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_35445306/article/details/79688017
今日推荐