1.指針指派
#include<stdio.h>
int main() {
//建立一個int變量
int a = ;
//建立一個int類型的指針變量
int * p_a;
//使用&符号取變量a的位址指派給p_a
p_a = &a;
return ;
}
2.修改指針位址所對應的值
#include<stdio.h>
int main() {
//建立一個int類型的變量
int a = ;
//建立一個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 = ;
printf("修改p_a位址所對應的值後是:%d\n",*p_a);
printf("--------------------------");
return ;
}
輸出結果:
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 = ;
//建立一個int變量num2
int num2 = ;
//建立一個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 = ;
printf("修改後的值:\n");
printf("num1的值為:%d\tp_num1的位址是:%p\n", num1, p_num1);
printf("num2的值為:%d\tp_num2的位址是:%p\n", num2, p_num2);
return ;
}
運作結果:
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