C++问题,C问题,(lInux)

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:37:11
初学者,请高手回答的详细点>> 谢谢
1.#ifndef _AUX_H

#endif _AUX_H 有什么用,

3.为什么函数有返回值时,但调用时可以不用返回一个值??例如 :
如int fun() ;用时可以为 fun();就可?????????

4.为什么把文件加入工程中编译不出错,而链接或运行时总出错

5.如何比较两个文件夹中的文件中文件有什么区别/usr/include/c++/4.3与4.3.3(linux下);

6.一个数组,例如int a[10];用free(a) 它释放了多少空间.
若释放了整个空间,那为什么啊?free在链表中不只释放一个节点吗??

7.一个C程序运行完毕,它在内存所占用的空间会自动释放吗??

8函数调用完成后,是否把它所用的变量都释放掉,那函数里用malloc生成 的空间呢??????????????.

1.条件编译指令。。符合条件就编译。。不符合就不编译。。下面那个是结束条件编译。。。

2.函数可以没有返回值,因为这不是必须的。。int fun()只是说明这函数是int类型。。。返回与否在于程序员的设定。

3.因为有些错误必须是在运行时才会出现的。。。就以C为例~~C是不会检查数组边界的。。越界的话只有运行时才会出错。。

4.这个自己百度。。。一堆。。没空打。。

5.int a[10]..在C++下一个int就是4字节。。10个int就是40字节。把a的首地址给释放了,你认为下面的地址还有意义吗?

6.7.不一定..出现错误的话就释放不了。

对楼上的进行补充说明:
6.要看此句在那里,如果分配在栈上,那系统会自动释放,不用干预。如果是new出来的,那么需要delete
7.栈上空间会释放,堆上的不一定,程序员没释放就会造成内存泄露
8.变量在栈上,自动销毁,malloc上空间系统不会管,要程序员自己free