/*前集体要:先看上一篇*/
/*本程序的含义是,将存在a,b中的数进行交换,如:本来a=1,b=2,交换后a=2,b=1*/
1 #include <stdio.h> 2 void main() 3 { 4 int a,b,temp; 5 int *p,*q; //定义指针变量,int是指针指向的变量类型,因为指向的是a,b等整型变量,所以必须一致,将浮点型改为整型。 6 p=&a; //p为地址,&为取地址符。将变量a的地址赋给p 7 q=&b; //同上 8 printf("请输入两个整数(之间用空格隔开):\n"); 9 scanf("%d %d",&a,&b); //扫描,输入a和b的数值,并将其存入各自地址
10 printf("交换前分别为:\n"); 11 printf("%d %d",a,b); 12 temp=*p; //设置temp的原因就是防止数据丢失,好交换,细品。由第6、7行得出
//其实就是将a的数赋值给temp,存起来
13 *p=*q; //*为取值符号,将p和q地址中的数各种取出
14 *q=temp; // 将存在temp(*p也是b)的值赋值给*q(b),实现了a和b的交换
15 printf("交换后为:\n%d %d",*p,*q); //将值取出打印出来
16 }
其实要实现a和b的交换用到指针完全是多此一举,但是以这样比较简单的形式可以较快的理解指针的概念
下面我写一个不用到指针的的交换输出
1 2 3 4 5 6 7 8 9 10 11 12 | void main() { int a,b,temp; printf( "请输入两个整数(之间用空格隔开):\n" ); scanf( "%d %d" ,&a,&b); printf( "交换前分别为:\n" ); printf( "%d %d" ,a,b); temp=a; a=b; b=temp; printf( "交换后为:\n%d %d" ,a,b); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具