看书的看到了声明和定义,自己试着答了下,虽然相差不远,但还是不够完美,于是查了下资料,如下:
什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它 取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和 这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊。^_^),它们就同 生共死,终生不离不弃。并且这块内存的位置也不能被改变。一个变量或对象在一定的区 域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义 同一个变量或对象。 什么是声明:有两重含义,如下: 第一重含义:告诉编译器,这个名字已经匹配到一块内存上了(伊人已嫁,吾将何去何 从?何以解忧,唯有稀粥),下面的代码用到变量或对象是在别的地方定义的。声明可以出 现多次。 第二重含义:告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量 名或对象名。比如你在图书馆自习室的某个座位上放了一本书,表明这个座位已经有人预 订,别人再也不允许使用这个座位。其实这个时候你本人并没有坐在这个座位上。这种声 明最典型的例子就是函数参数的声明,例如: void fun(int i, char c); 好,这样一解释,我们可以很清楚的判断:A)是定义;B)是声明。 那他们的区别也很清晰了。记住,定义声明最重要的区别:定义创建了对象并为这个 extern 声明变量是在其他文件正声明(也可以看做是引用变量) return 子程序返回语句(可以带参数,也可不带参数) void 声明函数无返回值或无参数,声明空类型指针 continue 结束当前循环,开始下一轮循环 do 循环语句的循环体 while 循环语句的循环条件 if 条件语句 else 条件语句否定分支(与if 连用) for 一种循环语句(可意会不可言传) goto 无条件跳转语句 sizeof 计算对象所占内存空间大小 对象分配了内存,声明没有分配内存(一个抱伊人,一个喝稀粥。^_^