c语言指针初认识

1.指针赋值

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

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

#includeint 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.修改变量所对应的指针地址

#includeint 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变量进行的操作。

一颗优雅草科技bigniu原创

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200213A0C1DU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券