学习笔记(02):C语言 从小白到大神: 入门篇-指针数组、指针的指针、main函数参数、小结...

立即学习:https://edu.youkuaiyun.com/course/play/8088/177054?utm_source=blogtoedu

第九节  指针数组、指针的指针、main函数参数,小节
    一。指针数组的概念回顾:一个数组,其元素均为指针类型数据,称为指针数组。指针数组中每一个元素都是指针变量。
    指针数组的定义形式:
    类型标识符 *数组名[数组长度说明
    int *p[4];
    数组指针 int (*p)[4];首先是指一个指针变量。
    //二:指向指针的指针,用来指向指针的变量的变量,简称指向指针的指针;
    char **p;
    int **p;定义了一个指向整型指针变量的指针变量

    //*(*p);表示指针变量p是指向一个指针变量,*p是p所指向的指针变量
    char **pp;
    pp = &pName[0];
    printf("pp = %s\n",*pp);

    三.指针数组做main函数形参
    指针数组有个重要应用,就是可以做main的函数的参数,

    int main(
                int argc,//整型,应该是argv指针数组的元素个数
                char *argv[] //就是指针数组,argv[0]保存的是 当前可执行文件的完整路径文件名
            )
    {
            
    }
    //1.在命令行中输入参数
      2.如调试的时候在vs201x中加入命令行参数

      四.本章小结
      (1).指针数据类型小结表:指针变量,指针数组,函数指针,int *p():(函数p,返回一个指针,这个指针指向一个整型数据),二级指针
      (2).指针运算小结
      (2.1)指针变量的加减
      p++,p--;
      int *p;1000,1004;
      (2.2)指针变量的赋值
      int *p = 100;这个是错误的//不可以,不能直接赋初值,不要认为可以将地址1000赋值给p,只能够将变量的已经分配的地址赋值给指针变量
      int a;
      int *p = &a;
      (2.3)指针变量可以为空值,表示不指向任何变量
      int *p = NULL;//赋值为0,可以,但赋值为1就不可以,NULL就相当于是0,就是使p指向地址为0的单元。系统会保证地址为0 的这个单元不存放有效数据。
      (3)void *型指针,万能型指针变量 ,也就能指向任意数据类型。
      int a = 3;
      int *p = &a;

      float bf = 56.f
      float *pf = &bf;

      //p = pf;//这个是不对的
      p = (int*)pf;这样才能用

      void *pwn = NULL;
      pwn = p;
      pwd = pf;//这样都可以
      pf = (float *)pwn;
      (4)总结
      优点:效率高;
      缺点:太过灵活;
    */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值