在c语言中 int a=123,和int a, a=123的区别?
答案:2 悬赏:20 手机版
解决时间 2021-04-02 16:21
- 提问者网友:轻浮
- 2021-04-01 17:07
在c语言中 int a=123,和int a, a=123的区别?
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-04-01 17:27
差别主要在局部变量和全局变量中。
如果 a是局部变量,则
int a=123;
和 int a; a=123;
编译的代码没有差别。
如果a是全局变量,两者编译的结果有差别。
则int a=123;a会当成一个静态变量进行初始化,不会生成赋值指令。追问是的,我尝试在全局变量中这样写,int a,a=123;结果编译器直接报错,你可以解释下为什么吗?追答显然语法错误
应该写成:
int a; //是分号,不是逗号。
a=123; //此句只能写在函数体内,全局部变量不能在函数体外这样赋值。
局部变量的情况下,两种写法实际编译出来的代码是一样的。
如果 a是局部变量,则
int a=123;
和 int a; a=123;
编译的代码没有差别。
如果a是全局变量,两者编译的结果有差别。
则int a=123;a会当成一个静态变量进行初始化,不会生成赋值指令。追问是的,我尝试在全局变量中这样写,int a,a=123;结果编译器直接报错,你可以解释下为什么吗?追答显然语法错误
应该写成:
int a; //是分号,不是逗号。
a=123; //此句只能写在函数体内,全局部变量不能在函数体外这样赋值。
局部变量的情况下,两种写法实际编译出来的代码是一样的。
全部回答
- 1楼网友:梦中风几里
- 2021-04-01 18:25
后一种写法错了哦
应该是 int a; a=123; 用分号。
效果都是一样的,定义一个变量,值为123
不过 后者是先定义 再赋值,操作多了一步,代码多了一行。
时间上会慢上几微妙,打字的时候,要多打几个字符,除此以外,没有任何区别了。
应该是 int a; a=123; 用分号。
效果都是一样的,定义一个变量,值为123
不过 后者是先定义 再赋值,操作多了一步,代码多了一行。
时间上会慢上几微妙,打字的时候,要多打几个字符,除此以外,没有任何区别了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯