2021-01-18

对指针和一维数组的认识(本文适合c语言初学者)

@up小国gogogo

数组名:一维数组名是一个指针常量
存放的是一维数组第一个元素的地址,值不能被改变
下标和指针的关系:
a[i]等价于*(a+i)
重点:假设指针变量的名字为p:
则p+i的值是p+i(p所指向变量所占的字节总数)*
举例:`

void show_array(int *p,int len)
{
   p[2]=-1;//p[2]==*(p+2)
}
int main (void)
{
   int a[5]={1,2,3,4,5};
   show_array(a,5); //a等价于&a[0],&a[0]本身就是int *类型
   printf("a[2]=%d\r\n",a[2]);
}

输出结果应该为a[2]=-1.
另外:
如何通过被调函数修改主调函数中普通变量的值?

  1. 实参为相关变量的地址
  2. 形参为以该变量的类型为类型的指针变量
  3. 在被调函数中通过 *形参变量名 的方式可以修改主调

一个初学者容易迷糊的问题,int * i;//不是定义了一个名字叫做 *i的形参,而是定义了一个形参i,它的类型是int *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值