1.#define和const的区别
#define宏是在预处理阶段展开 const是在编译运行阶段使用
#define宏没有类型定义,不做检查 const有类型定义,编译阶段会检查类型
宏定义不分配内存 变量定义分配内存
#define可以防止头文件重复 const不行
#ifndef xxx
def xxx
endif
2.自动类型转换 && 强制类型转换
自动 char -> int ->double
强制 数据类型表达式都必须加括号,只在本次运算中临时性转换,不改变原数据类型及变量值,不遵循四舍五入
3.continue和break
break是跳出当前整个循环,continue是结束当前这一次循环,开始下一次循环
4.形参与实参
实参赋值给形参,参数传递时,数据类型与数量应保持一致
形参只有在被调用时分配内存单元,调用结束后释放内存;实参在进行函数调用时,必须有确定的值
5.变量的存储类型
每个变量和函数都有两个属性,类型和存储类型,存储类型分别是自动(auto),外部(extern),寄存器(register),静态(static)
auto:函数体中定义的变量缺省是auto,局部变量
extern:在函数体外部声明变量,就为变量永久的分配存储
register:关系运行速度时,把经常使用的变量存储在高速的内存寄存器中
static:允许局部变量保存它的原有值
6.指针
类型关键字 *指针变量名 取地址符& 间接寻址运算符*用来得到指针变量指向的变量的值
变量的地址是一个常量,不能对其进行赋值,变量的指针是一个变量,其值可以改变
int (*compare)(int a,int b)
//compare是一个指针变量,指向一个有两个整型参数,返回值为整型的函数,称为函数指针
int *compare(int a,int b)
//函数的返回值是一个整型指针
7.判断是文件还是文件夹
if(File.Exists(path)){
// 是文件
}
else if(Directory.Exists(path))
{
// 是文件夹
}else
{
// 都不是
}
8.关于一个简单的判断参数的定义
static bool od=true;
flag = !flag;
奇数时flag为true,偶数时为false
9.关于C语言处理时间的函数
获取系统时间,距离1970年的毫秒数,并转换为正常的时间来显示
time_t lt;
lt = time(NULL); //当前系统时间距离1970年1月1日的毫秒数值
struct tm *tmp;
tmp = localtime(<);
char* format = "%Y-%m-%d %H:%M:S%";
char strTime[100];
strftime(strTime, sizeof(strTime), format, tmp);
//strTime字符串的格式如下
//2015-10-07 20:46:01