自动变量是一个分配的局部变量 程序流进入和离开时自动解除分配 变量的范围。
因此,如果我有一个带参数的函数,这是否意味着参数的范围是整个函数,因此它符合上述定义?或者它不太适合这个?
(我不确定将这个问题放在哪个类别,对不起)
答案 0 :(得分:3)
是的,参数是具有自动存储持续时间的对象。
N1570 6.9.1p9:
每个参数都有自动存储持续时间;它的标识符是左值。
您询问范围,它并不直接相关。范围和寿命是两回事。标识符具有范围,即标识符可见的程序文本区域。对象具有存储持续时间(生存期),它是程序执行期间逻辑上存在对象的时间段。在执行封闭块期间存在具有自动存储持续时间的对象;对于函数参数,它在函数返回时不再存在。它的名称只在函数体内可见,但是对象本身可以从其作用域外部访问(例如,如果它的地址被传递给另一个函数)。
答案 1 :(得分:1)
是。参数在函数内有效,直到函数结束。