C语言 怎样引用指针变量

在引用指针变量时有3种情况:
(1)给指针变量赋值。如:

p=&a;//把a的地址赋给指针变量p

指针变量p的值是变量a的地址,p指向a。
(2)引用指针变量指向的变量。
如果执行p=&a;,即指针变量p指向了整型变量a,则

printf("%d",*p);

其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。
如果有以下赋值语句:

*p=1;

表示将整数1赋给p当前所指向的变量,如果p指向变量a,则相当于把1赋给a,即“a=1;”。
(3)引用指针变量的值。如:

printf("%o",p);

作用是以八进制数形式输出指针变量p的值,如果p指向a,就是输出了a的地址,即&a.
注意:
要熟练掌握“&”和“*”这两个运算符。
(1)& 取地址运算符。&a是变量a的地址。
(2)*指针运算符(或称“间接访问”运算符),*p代表指针变量p指向的对象。
下面是一个指针变量应用的例子
【例题】
输入a和b两个整数,按先大后小的顺序输出a和b
【代码】

int main()
{
	int a, b;
	printf("从键盘输入整数a和b:\n");
	scanf("%d%d", &a, &b);
	int* p1, * p2;//p1, p2的类型是int*
    p1 = &a;
	p2 = &b;
	int *p;
	if (a < b)  //如果a<b
	{
		p = p1;
		p1 = p2;
		p2 = p;
	}                      //使p1与p2的值交换
	printf("Max=%d Min=%d\n", *p1, *p2);  //输出p1和p2所指向的变量的值
	printf("a=%d b=%d\n", a, b);  //输出a,b的值,a,b的值没有交换
	return 0;
}

【运行结果】
请添加图片描述
【程序分析】
输入a=5,b=9,由于a<b,将p1和p2交换。
交换前的情况:
请添加图片描述
交换后的情况:
请添加图片描述
注意:a和b的值并没有交换,它们仍然保持原值,但p1和p2的值该变了。p1的原值为&a,后来变成&b,p2的原值为&b,后来变成&a。这样在输出p1和p2时,实际上是输出变量b和a的值。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值