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