c语言域34

Posted 周三石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言域34相关的知识,希望对你有一定的参考价值。

// 此处的命名空间为通常标识符.

a; // 名称 a 的文件作用域始于此

f()
{
a = 1; // 名称 a 的块作用域始于此;隐藏文件作用域的 a
{
a = 2; // 内层 a 的作用域始于此,隐藏外层 a
打印格式("%d\n", a); // 内层 a 在作用域中,打印 2
} // 内层 a 的块作用域终于此
打印格式("%d\n", a); // 外层 a 在作用域中,打印 1
} // 外层 a 的作用域终于此

g( a); // 名称 a 拥有函数原型作用域;隐藏文件作用域的 a
 f( n)  // 函数参数 'n' 的作用域开始
{ // 函数体开始
++n; // 'n' 在作用域中并指代函数参数
// 整 n = 2; // 错误:不能在同一作用域重声明标识符
( n = 0; n<10; ++n) { // 循环局域的 'n' 的作用域开始
打印格式("%d\n", n); // 打印 0 1 2 3 4 5 6 7 8 9
} // 循环局域的 'n' 的作用域结束
// 函数参数 'n' 回到作用域
打印格式("%d\n", n); // 打印参数的值
} // 函数参数 'n' 的作用域结束
a = n; // 错误:名称 'n' 不在作用域中
 {a, b};
不同()
{
(的大小( {b, a}) != 的大小())
a; // a == 1
b; // C89 中 b == 0 , C99 中 b == 1
}
 i; // i 的作用域开始
g( a) { a; } // g 的作用域开始(注意 "a" 拥有块作用域)
()
{
i = g(2); // i 和 g 在作用域中
}
 f()
{
{
标签; // 标签 在作用域中,尽管之后才声明
标签:;
}
标签; // 标号忽略块作用域
}

g()
{
标签; // 错误: g() 中 标签 不在作用域中
}
 f( n,
a[n]); // n 在作用域中并指代第一参数
 f ( // 函数名 'f' 在文件作用域
双精 f, // 标识符 'f' 现在在作用域中,隐藏文件作用域的 'f'
(**a)[10 * 的大小 f] // 'f' 指代第一参数,它在作用域中
);

{ n = 3 };
(*(*g)( n))[n]; // 函数参数 'n' 的作用域在其函数声明器的结尾结束
// 数组声明器中,全局 n 在作用域
// (这声明指向返回 3 个 整 的数组的指针的函数的指针)
 节点 {
节点* 下个; // 节点 在作用域中并指代此 构
};
 { x = 12 };
{
{ x = x + 1, // 新 x 在逗号前不在作用域中,初始化 x 为 13
y = x + 1 // 新枚举项 x 现在在作用域中,初始化 y 为 14
};
}
 x = 2; // 第一个 'x' 的作用域开始
{
x[x]; // 新声明的 x 的作用域在声明器 ( x[x] )后开始.
// 在声明器内,外层 'x' 仍在作用域中.
// 这声明 2 个 整 的 变长数组 数组.
}

y = 32; // 外层 'y' 的作用域开始
{
y = y;
// 内层 'y' 的作用域在初始化器( = y )前开始
// 这不会以值 32 初始化内层 'y' ,
// 这以其自身的不确定值初始化内层 'y'
}

阶乘( n)
// 声明器结束, '阶乘' 从此点开始在作用域中
{
n < 2 ? 1 : n * 阶乘(n - 1); // 递归调用
}
{
baz {};
颜色 {红, 蓝};
};
baz b; // baz 在作用域中
颜色 x =; // 颜色 和 红 在作用域中


以上是关于c语言域34的主要内容,如果未能解决你的问题,请参考以下文章

C语言之变量作用域

C语言“局部变量作用域”的问题

C语言中 变量作用域的区别

c语言 关于位域的使用

C语言速记3(作用域,枚举)

c语言的双冒号是啥意思::