您的位置:首页 > 编程语言 > C语言/C++

c语言指针初认识

2018-03-25 16:36 246 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息