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原创
领取专属 10元无门槛券
私享最新 技术干货