• C使用指针注意事项(学习笔记)


    一、数组使用指针
    1、数组名是数组元素首地址。
    2、只有在函数原型或函数定义头中,才可以用int arr[]代替int * arr

    int sum(int * arr,int n);
    int sum(int arr[],int n);//等效
    
    • 1
    • 2

    3、一个整形数组表名处理元素的个数有2种方式

    /*方式1*/int sum(int * arr,int n);
    /*方式2*/int sum(int * start,int * end);
    
    • 1
    • 2

    4、arr[i]和*(arr+i)是等价的
    二、指针操作
    1、赋值:可以把指针赋给指针;
    2、解引用:*运算符给出指针指向地址上存储的值;
    3、取址:和所有变量一样,指针变量也有自己的地址和值;
    4、指针与整数相加:可以使用+运算符把指针与整数相加,或整数与指针相加。整数会和指针所指向类型的大小(以字节为单位)相乘,然后把结果与初始地址相加;
    5、递增指针:递增指向数组元素的指针可以让指针移动至数组的下一个元素;
    6、指针减去一个整数:可以使用-运算符把指针与整数相-,不可以整数减指针。整数会和指针所指向类型的大小(以字节为单位)相乘,然后初始地址减去乘积;
    7、递减指针:与递增类似;
    8、指针求差:通过用于两个指向同一数组不同元素的指针,通过求差计算出两元素之间的距离;
    9、比较:指向相同类型的指针才可以比较。
    三、注意事项
    1、千万不要解引用未初始化的指针。创建一个指针时系统只分配了存储指针本身的内存,并未分配存储数据的内存。因此,在使用指针之前,必须先用已分配的地址初始化它。

    int * pt;//未初始化的指针
    *pt = 5;//致命错误
    
    • 1
    • 2
  • 相关阅读:
    【框架: Nodejs单机数据库选择】
    Allegro调丝印规范操作指导
    转铁蛋白靶向肽标记PEG化磷脂DSPE-PEG-T7(HAIYPRH)
    智慧林业解决方案-最新全套文件
    java实现pdf电子合同设置合同编号
    JDK 中的 XML API
    C++类型转换-static_cast
    视频爆炸时代,谁在支撑视频生态网高速运行?
    React项目使用craco(由create-react-app创建项目)
    【C++】类和对象的知识点
  • 原文地址:https://blog.csdn.net/ni996570734/article/details/134026344