codecamp

C++ 参数和变量的局部性

参数和变量只存在于它们所在的函数内部。在main函数内部,没有phil这个东西存在。如果你想使用这个变量,编译器会报错。同样的,在printTwice内部,也没有argument这个变量。

类似这样的变量被称为局部变量。为了跟踪参数和局部变量,画一张栈图还是很有用的。像状态图一样,栈图展示出每个变量的值,然而变量都包含在大方框里,大方框表示变量所属的函数。

例如,printTwice的栈图如下:

enter image description here

每当函数被调用,就会创建此函数的一个实例。函数的每个实例都包含自己的参数和局部变量。上图中外面带函数名的方框代表函数实例,方框里面是函数的参数和局部变量。

此例中,main函数有一个局部变量argument,没有参数。printTwice没有局部变量,有一个参数phil。

C++ 参数与参数值
C++ 多参函数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }