main函数标准写法
main函数又称主函数,c程序唯一的入口
在C的标准文档里对main函数的描述为
int main(void)
int main(int argc, char *argv[]) // char *argv[]可以写成char **argv
argc(argument counter)是提供给主函数的参数个数,
argv(argument value)第二个是参数的字符串数组的指针。
在C++标准文档里对main函数的描述为:
int main() { /* … */}
int main(int argc, char *argv[]) {/ * … */}
参考:探寻main函数的标准写法,以及获取main函数的参数、返回值
内存申请分区
程序运行时,内存分为四大区
1.代码区:存放函数体内的二进制代码。
2.数据区:也称全局区或者静态区,存放全局的东西,比如全局变量,静态变量以及常量。
3.栈区:由编译器自动分配和释放,存放函数参数,局部变量等,不需要时系统会自动清除。
4.堆区:由程序员分配释放,若程序员未释放,则程序结束之后,编译器自动释放。c++中可以用new在堆区中开辟数据。
在执行完func()函数以后,指针变量p保存了a的首地址,但是由于a定义在堆区,地址上的常量值已经被释放了
参考 C++ 学习(九)内存分区(代码区、全局区、栈区、堆区)
变量在函数内定义时,如main函数(main函数也是一种函数,作为程序入口),从栈空间申请内存进行存储。进程创建时初始化栈空间,大小固定。
变量在函数体外定义时,申请的内存来自数据段,内存大小按需分配,可以自由增长。
较大的变量,如数组,可以定义在堆区。