int main()

一个程序放在c:/file/hibari.exe 如果使用命令行、“批处理.bat”去调用,命令会被保存在argv[]数组内 遍历数组即可将所有元素取出

  1. /*
  2. argc表示接受参数个数
  3. argv[]表示接受参数数组
  4. */
  5. int mainint argc, char* argv[])
  6. {
  7. for(i=0; i<argc; i++)
  8. {
  9. grgv[i];
  10. }
  11. }

头文件.h

  1. #pragma once //进包含一次头文件
  2. #include <stdio.h> //系统饮用(系统查找)
  3. #include hibari.h //文件引用(文件查找)

全局变量

在“头文件.h”中定义的全局变量, “源文件.c”中需要声明(extern)后才能使用全局变量 静态变量(static) 无法通过声明使用

  1. /* hared.h */
  2. int value;
  3. /* soure.c */
  4. extern int value

程序四区

内存划分区域 储存内容 管理者 申请和释放过程 可能因为操作不当导致的BUG
堆区
heap
动态变量 由程序员手动申请与释放的动态内存区域 使用Malloc/new
free/delete
指令分配和释放
不及时释放可能造成(内存泄漏)
(例如递归函数不释放内存)
栈区
stack
局部变量 由编译器(程序自己决定)内存的分配和释放 当函数、执行结束后
程序自行释放
当内存被占满时会造成(内存溢出)
全局\静态区
global
全局变量、
静态变量
常数
由系统分配和释放的内存区域 当程序运行结束后,
由系统释放
代码区
code
函数体的二进制代码 由操作系统分配和释放 完全由系统托管

作用域

在两个大括号中定义的函数、代码、变量只在大括号内起作用,
超出即被释放

  1. {
  2. int a=10;
  3. printf("作用域内");
  4. void Hibari();
  5. {
  6. printf("作用域内的函数");
  7. }
  8. }
  9. int a=10;
  10. printf("作用域外");
  11. void Hibari();
  12. {
  13. printf("作用域外的函数");
  14. }