当前位置:   article > 正文

C++形参、实参地址,局部变量、全局变量指针理解_c++ 局部变量指针

c++ 局部变量指针

来源:算法竞赛经典第二版P122

函数**(包括main函数)的形参和在该函数里定 义的变量都被称为该函数的局部变量**(local variable)。不同函数的局部变量相互独 立,即 无法访问其他函数的局部变量。需要注意的是,局部变量的存储空间是临时分配的,函数执 行完毕时,局部变量的空间将被释放,其中的值无法保留到下次使用。与此对应的是全局变 量global variable):此变量在函数外声明,可以在任何时候,由任何函数访问。需要注意 的是,应该谨慎使用全局变量。(**注意:**若定义一个数组,若是全局变量,则可以不用初始化;若是定义局部变量,一定要初始化为0,否则后面用到会报错)

调用栈描述的是函数之间的调用关系。它由多个栈帧(Stack Frame)组成,每个栈帧对 应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量,因而不仅能在执行 完毕后找到正确的返回地址,还很自然地保证了不同函数间的局部变量互不相干——因为不 同函数对应着不同的栈帧

C语言的变量都是放在内存中的,而内存中的每个字节都有一个称为地址 (address)的编号。每个变量都占有一定数目的字节(可用sizeof运算符获得),其中第一 个字节的地址称为变量的地址

指针:

用int* a声明的变量a是指向int型变量的指针。赋值a = &b的含义是把变量 b的地址存放在指针a中,表达式*a代表a指向的变量。
** *a是指“a指向的变量”,而不仅是“a指向的变量所拥有的值”。**理解这一点相当重 要。例如,a = a + 1就是让a指向的变量自增1。甚至可以把它写成(a)++。注意不要写 成a++,因为“++”运算符的优先级高于“取内容”运算符“”,实际上会被解释成(a++)。

指针也是一个 变量,只不过类型是“指针”

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/机器笔尖舞者/article/detail/63282
推荐阅读
  

闽ICP备14008679号