请问一下各位: int a; a=1;和int a=1;他们有区别吗,都是什么意思啊。。谢谢

如题所述

你好!!!

int a; a=1;和int a=1;从一般的角度来看是一样的:即我们使用的是变量的值即a的值1
但是要是从运行的时间来看是不一样的:int a; a=1;表示首先我们声明一个整型的变量a,并没有分配空间,只是告诉编译器变量的标识符和变量的类型,此时要是我们用a的值会是一个随机数,a=1;此时系统会在栈了给变量分配内存,并把值1放到内存中。此时变量分配的空间是在运行时才分配的!!!!

int a=1;表示就是定义,即声明时带初始值。此时不仅告诉编译器变量的标识符和变量的类型,还在编译时期就在栈分配了空间!!!

总结:int a; a=1;它是在运行是得到内存空间的,int a=1;其实在编译时期就得到内存的。

要是楼主不理解c/c++中内存分配的问题就到百度上看看相关的文章!!!

不理解我们再交流!!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-22
基本一样,第一个是先申明,后赋值,第二个是申明与赋值同时进行,一般数年之后的人,都惯用第二种方法。
第2个回答  2010-08-22
效果是一样的,如果有多个变量要赋值的话就用第一种
比如,int a,b,c;
a=1;
b=2;
c=3;
用第二种容易错,比如,
int a,b,c=3

看起来好像是a、b、c都等于3,实际上只有c等于3而已

我是C++初学者,QQ1032464096,有兴趣的话加我一起讨论吧:)
第3个回答  2018-03-11

int a; a=1;表示首先我们声明一个整型的变量a,

int a;表示定义一个整型变量,不是声明。extern int a;才是声明

不信你可以在任意C++编译器 连着两行int a; 你看看他会提示什么。

补充完整以符合题意: 

int a;//定义一个整型变量a,并分配随机值(可以Debug查看,没初始化都是这个:-858993460) 

a = 1; //给变量a赋值

int a = 1; //定义变量a并赋初值为1;

相似回答