02-04_通过指针间接赋值

#define _CRT_SECURE_NO_WARNINGS//强行去掉安全检查
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>


int get_b()
{
int b = 10;
return b;
}


int get_b2()
{
int b = 20;
return b;
}
int get_b3(int *p)
{
*p = 77777777;
}
int get_b4(int *q1,int *q2,int *q3,int *q4)
{
*q1 = 11;
*q2 = 22;
*q3 = 33;
*q4 = 44;
return 1;
}
void main2()
{
int a = 100; 
int *p = NULL;


//建立关系
//指针指向谁,就把谁的地址赋值给指针
p = &a;


//通过*操作内存
*p = 22;


printf("%d\n",*p);


//通过指针间接赋值
//1.两个变量
//2.建立关系
//3.通过*操作内存
int b = get_b();
printf("b==============%d\n", b);


get_b2(b);
printf("b2==============%d\n", b);


//如果想通过形参改变实参的值,
//必须传递他的地址,

get_b3(&b);
printf("b3==============%d\n", b);


//靠函数返回也可以实现改变一个值
//但是 函数返回只能返回一个值
//指针能修改多个值
//例如




int a1 = 1, a2 = 2, a3 = 3, a4 = 4;
get_b4(&a1,&a2,&a3,&a4);
printf("a1=%d,a2=%d,a3=%d,a4=%d\n", a1,a2,a3,a4);
system("pause");
}
//--------------------


int fun(int *p)
{
p = 0x55555;
printf("fun p=%p\n", p);
}


int fun2(int **pp)//改变一个指针的值,需要二级指针
{
*pp = 0x777777;
//printf("fun p=%p\n", pp);
}
void main()
{
//一个变量变量,应该定义一个什么类型的指针保存它的地址
//在原来类型基础上加一个*
//int a = 10;
//int *p = &a;
//int *pp = &p;


int *p = 0x56678;
printf("p1==----%p\n", p);


fun(p);
printf("p2==----%p\n", p);
fun2(&p);
printf("p3==----%p\n", p);
system("pause");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值