int main()
一个程序放在c:/file/hibari.exe 如果使用命令行、“批处理.bat”去调用,命令会被保存在argv[]数组内 遍历数组即可将所有元素取出
/*
argc表示接受参数个数
argv[]表示接受参数数组
*/
int main(int argc, char* argv[])
{
for(i=0; i<argc; i++)
{
grgv[i];
}
}
头文件.h
#pragma once //进包含一次头文件
#include <stdio.h> //系统饮用(系统查找)
#include “hibari.h” //文件引用(文件查找)
全局变量
在“头文件.h”中定义的全局变量, “源文件.c”中需要声明(extern)后才能使用全局变量 静态变量(static) 无法通过声明使用
/* hared.h */
int value;
/* soure.c */
extern int value
程序四区
内存划分区域 | 储存内容 | 管理者 | 申请和释放过程 | 可能因为操作不当导致的BUG |
---|---|---|---|---|
堆区 heap |
动态变量 | 由程序员手动申请与释放的动态内存区域 | 使用Malloc/new free/delete 指令分配和释放 |
不及时释放可能造成(内存泄漏) (例如递归函数不释放内存) |
栈区 stack |
局部变量 | 由编译器(程序自己决定)内存的分配和释放 | 当函数、执行结束后 程序自行释放 |
当内存被占满时会造成(内存溢出) |
全局\静态区 global |
全局变量、 静态变量 常数 |
由系统分配和释放的内存区域 | 当程序运行结束后, 由系统释放 |
|
代码区 code |
函数体的二进制代码 | 由操作系统分配和释放 | 完全由系统托管 |
作用域
在两个大括号中定义的函数、代码、变量只在大括号内起作用,
超出即被释放
{
int a=10;
printf("作用域内");
void Hibari();
{
printf("作用域内的函数");
}
}
int a=10;
printf("作用域外");
void Hibari();
{
printf("作用域外的函数");
}