C语言-指针

本文详细介绍了C语言中指针的应用,如用于交换变量值和函数返回多个结果。指针运算符`&`和`*`的相互作用也进行了说明,并探讨了指针与数组的关系,指出数组参数实际上是特殊的指针。此外,文章还讨论了常量指针和指针常量的区别,强调了`const`关键字在指针声明中的不同位置所代表的含义。

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

指针应用场景

  1. 交换两个变量的值
  2. 函数返回多个值,某些值就只能通过指针返回(传入的参数实际上是需要保存带回的结果的变量 )
  3. 函数返回运算的状态,结果通过指针返回
    #include <stdio.h>
    
    int divide (int a,int b,int *result);
    
    int main(void)
    {
    	int a=5;
    	int b=2;
    	int c;
    	if(divide(a,b,&c))
    	   {
    	   	 printf("%d/%d=%n",a,b,c);
    	   }
    	return 0;
    }
    
    int divide (int a,int b,int *result)
    {
    	int ret = 1;
    	if(b==0) ret = 0;
    	else
    	{
    		*result = a/b;
    	}
    	return ret;
    } 
    

指针运算符&*

  1. 相互反作用
    (1)*&yptr -> * (&yptr) -> * (yptr的地址) -> 得到地址上的变量 -> yptr
    (2).&*yptr -> &(*yptr) -> &(y) -> 得到y的地址,也就是yptr -> yptr

指针与数组

  1. 函数参数表中的数组实际上是指针(数组变量是特殊的指针)
    以下四种函数原型是等价的:
    int sum(int *ar,int n);
    int sum(int *,int n);
    int sun(int ar[],int n);
    int sum(int [],int);
    
    

常量指针与指针常量

  1. 常量指针。
    常量是形容词,指针是名词。常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针。
    (1)const int *p;
    (2)int const *p;
  2. 指针常量。
    指针是形容词,常量是名词。指针常量的本质是一个常量,而用指针修饰它,那么说明这个常量的值应该是一个指针。
    int *const b = &a;
  3. 常量指针与指针常量区分
    const在*前为常量指针
    const在*后为指针常量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值