【C语言】" * & 的应用"|通过指针交换变量值|指针变量的说明 

举报
謓泽 发表于 2023/09/28 20:09:58 2023/09/28
【摘要】 【C语言】" * & 的应用"|通过指针交换变量值|指针变量的说明 

🗡 " * & 的应用" 

如下所示👇

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
	int i = 0;
	int* p = &i;
	printf("请输入数字:");
	scanf("%d", &i);
	printf("numbers1 = %d\n", *&i);
	printf("numbers1 = %d\n", i);
	printf("numbers1 = %d\n", *p);

	return 0;
}

运行结果

三个 printf() 打印的值都是一样的(同样可以思考下这个是为什么)


🗡 通过指针交换变量值 

既然都看到这里了,那么我们就来尝试做一道题目吧,看看你是否掌握这些知识点了。

题目内容:用指针交换两个值。

#include <stdio.h>
void swap(int *pa, int *pb)
{
	int temp = *pa; //10  
	*pa = *pb;      //20
	*pb = temp;     //10
}
int main(void)
{
	int a = 10, b = 20;
	int *pa = &a, *pb = &b;
	printf("交换前的值:a=%d, b=%d\n", a, b);

	swap(pa,pb);
	printf("交换后的值:a=%d, b=%d\n", a, b);
	return 0;
}

运行结果🖊

交换前的值:a = 10, b = 20

交换后的值:a = 20, b = 10

对程序进行说明如下↓

swap()是用户定义的函数,它的作用是交换两个变量(a 和 b)的值。swap 函数的形参 papb 是指针变量。程序运行时,先执行 main 函数,已知 a 和 b 的值。然后将 a 和 b的地址分别赋给指针变量 pa pb使 pa 指向 a,pb 指向 b

用图形表示如下如下↓


🗡 指针变量的说明 

指针变量可以进行某些运算,但其运算的种类是有限的。它只能进行赋值运算和部分算术运算符以及关系运算

指针运算符如下↓

  1. 取地址运算符&: 取地址运算符&单目运算符,其结合性为自右至左,其功能是取变量 的地址。
  2. 取内容运算符*: 取内容运算符*单目运算符,其结合性为自右至左,用来表示指针变 量所指的变量。在*运算符之后跟的变量必须是指针变量。

需要注意的是指针运算符* 和指针变量说明中的指针说明符* 不是一回事。在指针变量说明中,“*”是类型说明符,表示其后的变量是指针类型。而表达式中出现的“*”则是一个运算符用以表示指针变量所指的变量

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。