- 变量的作用域:块作用域、文件作用域、函数原型作用域、函数作用域和类作用域。
for语句表达式1的变量作用域是包含for语句的块,不是循环体;表达式3表示的变量也是循环体外的
for(表达式1;表达式2;表达式3) 循环体
#include<iostream>
using namespace std;
int main() {
//i的作用域在main的这个语句块里
for (int i = 0; i < 2; i++)
//j的作用域在上一行i的循环体里面
for (int j = 0; j < 3; j++)
cout << i + j;
//这里i的作用域可以到达这里
for (int i; i < 4; i++)
//由于j作用域不在这里,所以报错
for (j = 0; j < 5; j++)
cout << i + j;
return 0;
}
?示例:
#include<iostream>
using namespace std;
int* f(int x1, int &x2, int *x3, int *x4) {
//x1、x2值传递
x1 = x2;
//x2、x3引用传递,这里是x3的解引用,将x3指向的对象内容赋予给x2
x2 = *x3;
//实参不变的地址传递,x3指向x4指向的对象,实参不变
x3 = x4;
//实参变化的地址传递,把x3指向内容的对象赋值给了x4指向的内容
*x4 = *x3;
cout << x1 << " " << x2 << " " << *x3 << " " << *x4 << endl;
return &x2;
}
int main() {
//这是不常用的赋值语句,相当于a=1,b=2……
int a(1), b(2), c(3), d(4);
cout << *(f(a, b, &c, &d)) << endl;
cout << a << " " << b << " " << c << " " << d << endl;
return 0;
}
?
?今天还看了几个程序设计,不过还没有尝试打出来,明天继续!
|