指针(基本概念)

本文介绍了C语言中的指针基本概念,包括指针变量的赋值和解引用操作。通过示例代码展示了如何使用指针进行变量地址的获取、指针的赋值以及如何交换两个指针变量的值,其中包括一种递归函数的方法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针基本概念

如果pointer_1=&a, 则&*pointer_1相当于 &a
pointer_2= pointer_1 相当于pointer_2=&a(将a的地址赋值给pointer_2)
*&a 相当于 变量a 相当于 *pointer_1
(*pointer_1)++ 相当于a++

  • 指针变量赋值与输出
代码
#include <stdio.h>
main()
{
      int a, b;
      int *pointer_1, *pointer_2;

      a = 100; 
      b = 10;
      pointer_1 = &a;//把a的地址赋值给指针*pointer_1,即指针pointer_1=100
      pointer_2 = &b;//指针*pointer_2=10
      
      printf("%d,%d\n", a, b);
      printf("%d,%d\n", *pointer_1, *pointer_2);
}
输出结果

在这里插入图片描述

  • 交换两个指针变量的值
代码
#include<stdio.h>
main()
{
	int a=2,b=3,*pa=&a,*pb=&b,t;
	t=*pa;
	*pa=*pb;
	*pb=t;
	printf("a=%d,b=%d\n",a,b);
	printf("*pa=%d,*pb=%d\n",*pa,*pb);
}
输出结果

在这里插入图片描述

代码(用的递归函数的方法)
#include <stdio.h>
void swap(int *p1, int *p2);//声明一个swap函数,定义指针*p1 *p2 
main()
{ 
      int a, b;
      int *pointer_1, *pointer_2;
      scanf("%d %d", &a, &b);
      pointer_1 = &a;
      pointer_2 = &b;
      if(a < b) 
      {
            swap(pointer_1, pointer_2); //如果a>b,则调用swap函数
      }
      printf("\n%d > %d\n", a, b);//输出结果 
      
}

void swap(int *p1, int *p2)
{
      int temp;
	  printf("I'm swapping!\n");
      printf("Please wait^_^"); 
      
      temp = *p1;  //temp = a;
      *p1 = *p2;   //a = b;
      *p2 = temp;  //b = temp;
      
}//调用完返回到主函数main中 

输出结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值