C语言之指针[<重点>]

指针:
指针就是地址,地址就是指针。
地址就是内存单元的编号。
指针变量是存放地址的变量。
指针和指针变量是不同的的概念。

屏幕快照 2017-04-07 10.52.53.png
屏幕快照 2017-04-08 11.15.06.png

——————————————————————————
指针*号的含义

  • int * p;
    定义了一个名字叫p的变量,(int星)表示p只能存放int变量的地址。
    (星号)运算符要放在己经定义好的指针变量的前面。
    如果p是一个己经定义好的指针变量,则(星p)表示以p的内容为地址的变量。

注意:
void yh( int i,int j)//这个叫形参
yh(i,j)//这个叫实参
形参和实参永远是不同的。

  • *p :就是以p的内容为地址的变量。
屏幕快照 2017-04-08 15.30.41.png

测试a3是不是同一个变量,输出结果是:4,88
*(pArr+1)等价于pArr[i],也等价于b[i]

——————————————————————————————
[<动态内存分配>]重点重点重点

malloc是分配动态内存的意思

多级指针:

静态变量不能跨函数使用
动态内存可以跨函数使用

———————————————————————————
[<结构体>]重点:

如何取出结构体变量中的每一个成员:

  • pst->age在计算机内部会转换成(*pst).age
  • 所以pst->age等价于(*pst).age也等价于st.age
结构体变量和结构体指针变量传递的问题_1
结构体变量和结构体指针变量传递的问题_2
结构体变量和结构体指针变量传递的问题_3
指针的优点

如果要知道一个函数占用几个字节可以用以下输出:
printf("%d\n",sixeof(st));

图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容