• C语言学习日记4


      发现一个很好的学习视频,叫朱老师物联网大讲堂。

      1、指针类型:在定义指针的时候  数据类型 *指针名  这个地方的数据类型,是指指针指向的变量的数据类型。必须匹配!

        在定义的时候可以这么定义  int *pint;  float *pfloat;  char *pchar;  double *pdouble;

        int *p;  理解方法,首先看到p,这个是变量名,其次,p前面有个*,说明这个变量p是个指针变量,最后,*p前面有个int,说明这个指针变量p所指向的是一个int型的数据。或者可以写成int* p;理解的时候就可以把int*当成一个整体,指一个指向int型的指针。  

      2、指针和数组 

        数组名:做右值时,数组名表示数组的首元素首地址,因此可以直接赋值给指针。如果有int a[5]; 则a和&a[0]都表示数组首元素a[0]的首地址,PS:数组首元素的首地址和数组的首地址是不同的。前者是数组元素的地址,后者是数组的首地址。含义不同但是数值上是相同的。 

        数组的方式一次访问:a[0]  a[1]  a[2]  a[3]  a[4]

        指针的方式一次访问:*p  *(p+1)  *(p+2)  *(p+3)  *(p+4)

      3、指针++ --运算

        指针本身也是一种变量,因此也可以进行运算。但是因为指针变量本身存的是某个其他变量的地址值,所以该值进行*/%等运算无意义。两个指针变量相加本身也无意义,相减有意义,指针变量+1,-1是有意义的。+1就代表指针所指向的各自向后挪一格,-1代表指针所指向的各自向前挪一格。

        *p++可以看作*(p++)等同于 *p;p+=1;

      4、函数传参中使用指针

        int add(int a,int b)函数传参使用了int函数;实参把自己的值复制一遍传递给形参,自己本身不参与计算。

        int add(int *a,int *b)函数实参传的是地址,这样就可以再函数内改变实参变量的值

  • 相关阅读:
    如何判断第一个节区头的RVA
    从可执行文件中删除.reloc节区
    动态规划(dynamic programming)
    Ubuntu18安装SQL server
    Ubuntu16.04突然断网
    [Toddler's Bottle]做题记录
    BUU | pwnable_orw
    BUU| 基础破解
    web.xml
    PKIX
  • 原文地址:https://www.cnblogs.com/thorzhou/p/5572988.html
Copyright © 2020-2023  润新知