首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言的括号的不解

2013-01-22 
C语言的括号的困惑我今天看到一个非常特别的用法,让我打赌打输了,十分郁闷啊。我真的从来没见过还可以这样

C语言的括号的困惑
我今天看到一个非常特别的用法,让我打赌打输了,十分郁闷啊。
我真的从来没见过还可以这样用,确实是我的功底太浅了,来拜托各位大神了。

#include <stdio.h>

int main()
{
    {
       printf("Hello world!\n");
    }
    
    return 0;
}

不理解
[解决办法]
这个没什么问题的。

有时候,为了区分函数中的功能点,可以这样使用:


int giFunc()
{
    {
        ...//功能点1
    }

    {
        ...//功能点2
    }

    ...
}

[解决办法]
每个{打开一个新的scope/block。

[解决办法]
所谓新的scope意味着,你可以又声明变量什么的了。
{
{
int a = 1;
}
{
int a = 1; // 和上面的a没关系
}
}

[解决办法]
这只是把这个语句当成一个程序块来对待啊
[解决办法]
可以把{}理解成变量作用域。

int main()
{
{
int i;
}
{
int i;
}
}

2个i并不矛盾,因为在不同的作用域中
[解决办法]
加一对括号表明是一个程序块,里面声明的局部变量的作用域只在本块有效.
[解决办法]
这种没什么 配对就是了 就像if(((...((a))...)))一样
[解决办法]
C语言语句分单条语句和语句块,并且语句块使代码很容易看,不容易产生歧义,也不容易让人误会还 容易维护,比如目前你语句块中只有一条语句,但是以后若是往这个语句块里面加东西的话,不会因为漏掉括号而使得代码变异

[解决办法]
Grammar of C++ Statements
statement: 

labeled-statement 
expression-statement 
compound-statement 
selection-statement 
iteration-statement 
jump-statement 
declaration-statement
asm-statement
try-except-statement
try-finally-statement 

labeled-statement: 

identifier : statement 
case constant-expression : statement 
default  : statement

expression-statement: 

expressionopt ;

compound-statement: 

{ statement-listopt }

statement-list: 

statement 
statement-list  statement

selection-statement: 

if  (  expression ) statement 
if  ( expression  ) statement else statement 
switch  ( expression ) statement

iteration-statement: 

while  ( expression ) statement 
do statement while  ( expression ) ; 
for  ( for-init-statement  expressionopt ; expressionopt ) statement

for-init-statement: 

expression-statement 
declaration-statement

jump-statement: 

break  ; 
continue  ; 
return  expressionopt ; 


goto identifier ;

declaration-statement: 

declaration

try-except-statement: 

__try compound-statement
__except ( expression ) compound-statement

try-finally-statement: 

__try compound-statement
__finally ( expression ) compound-statement

[解决办法]
编程习惯问题 有的认为凸显程序模块化 就特特地加上一对{}
[解决办法]
一方面好看(易于阅读),一方面是程序块

热点排行