zoukankan      html  css  js  c++  java
  • C语言中的几个容易混淆的知识点总结

    1、指针数组与数组指针

               (1)int* q[10]; 指针数组,声明一个指向含有10个整型指针元素的数组。

                 (2)int  (*p)[10];  数组指针,声明一个指向10个整型数组的指针。

                   指针数组是元素为指针的数组,而数组指针是元素为指向数组的指针。

    2、函数指针与指针函数

             (1)int (*p)max(int a,int b);   函数指针,p为指向参数类型为int,int,返回值为int的函数,可以将该类型的函数作为首地址赋值给p。

              (2)int * max(int a,int b);    指针函数,返回值为指针类型的函数被称作指针函数。

     

    3、用字符串常量初始化指针与数组

           (1)char *p= “gooseberry”; 字符指针,初始化指针时所创建的字符串常量被定义为只读,如果试图通过指针修改这个字符串值,程序会出现未定义的行为。

          (2) char a[] = “gooseberry”;字符数组,与指针相反,由字符串常量初始化的数组是可以修改的。比如下面的语句:

    strncpy(a,"black",5);将数组的值改为blackberry。

     

    4、常量指针与指针常量

    (1)常量指针:指向常量的指针,指针所指向地址的内容是不可被修改的。

       const int *pi=&a;或者int const *pi, *pi是常量,不能将*p作为左值进行操作。

    (2)指针常量:不可修改地址的指针,但是可以对其指向的地址的内容进行修改。还有,指针常量在定义时必须同时赋值,指针常量也不能释放。

     定义" int *const pi=&a;",pi是常量,不能作为左值进行操作,但是允许修改间接访问值,即*pi可以被修改。

  • 相关阅读:
    Spring中Bean及@Bean的理解
    Visual Studio(VS)秘钥集合
    PLC不能初始化问题
    【原创】C# API 未能创建 SSL/TLS 安全通道 问题解决
    【原创】XAF CriteriaOperator 使用方式汇总
    【原创】.Net WebForm Calendar 日历控件常用方法
    【原创】XAF常用属性字段设置
    【记录】Windows 操作系统常用快捷命令
    【XAF】常见错误以及对应解决方法
    【原创】XAF ITreeNode+NonPersistent 使用方式
  • 原文地址:https://www.cnblogs.com/ccf19881030/p/12004913.html
Copyright © 2011-2022 走看看