C的数组与指针知识点小结

一.指针常量与常量指针

1. 指针常量

    指针本身为常量且有const属性

特点:指针指向的地址不变,指向的值可以改变(这里的改变指通过指针进行改变)。

格式:类型 * const 变量1=&变量2

      变量的数据类型—类型*

  /*test1.c*/

  #include<stdio.h>

  main()

  {

  int i=2;

  int j=3;

  int * const p=&i;

  *p = 8;              /*正确,指针指向的值可以改变*/

  p=&j;                /*错误,指针指向的地址不变*/

   }

2. 常量指针

  指针指向的变量为常量且有const属性

   特点:指针指向的值不变,指向的地址可以改变。

   格式:const 类型 * 变量1=&变量2

   变量的数据类型—const 类型 *

     /*test2.c*/

     #include<stdio.h>

     main()

     {

       int i=2;

       int j=3;

       const int * p=&i;

       *p=8;                /*错误,指针指向的值不变*/

       p=&j;                /*正确,指针指向的地址可以改变*/

     }

错误1:消除const属性

inta=6;         

const int *p=&b;     正确

 

constint a=6;

int *p=&a;          错误,消除了const的属性

3. 指向常量的常量指针

特点:指针指向的值和地址都不变。

格式:const 类型 * const 变量1=&变量2

二.按值传递和按地址传递

1.按值传递

   在实参和形参之间以值的形式传递,改变形参值对实参无影响。

   在调用函数时,将实参的值进行拷贝传递给形参,对形参的任何操作本质上是在对拷贝进行操作。

               注意:在调用过程中,实参的地址不会改变


2.按地址传递

在实参和形参之间以地址形式传递,可以通过改变形参值今进而改变实参值。

在调用函数时,将实参的地址传递给形参,对形参操作本质上是对实参地址的值进行操作(即间接寻址)。

注意:在调用过程中,实参的地址可能发生改变(空调用地址不变),用const防止其地址改变。

函数调用期间,修改主调函数中的数组,被调函数需要的参数:

(1)  数组第一个元素的地址(即第一个字节的地址)

(2)  数组的长度

 

三.指针数组与数组指针

1.指针数组(存储指针的数组)

         首先它是一个数组,然后是指针,是i个具有指针类型的数组元素。

         int *p[i]                 p(数组名)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值