本文是接上一篇博文的^^:
1)switch后的每一个case,后不加break会一直执行下去
2)switch(expert1)中的expert1只能是常整数(整数表达式或枚举常量),不能是变量
1)sizeof(str)会返回字符串长度+1(‘\0’)
2)sizeof(++a); 只进行sizeof操作,只看类型,不对()内表达式进行实际运算!
算数运算中,首先有如下类型转换规则:
1)字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) 。
2)short型转换为int型(同属于整型) 。
3)float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型) 。
关于文件的输入输出写在了这篇文章里面:
1)If(expr1 && expr2)中,当第一个条件不符合时不会再验证第二个
2)当if语句中的条件为赋值语句时,实际上是将赋值后的结果与0进行比较【左值】
if(1) 由于1>0 所以认为是true
1)结构体成员不能是函数
2)如果在某个函数中声明,只能在这个函数中用它来定义变量。
3)声明结构体类型时,不能对里面的变量进行初始化。
4)结构体成员可以是结构体变量。
5)结构体变量的首地址就是第一个成员的首地址
6)只要不冲突都可以重名,例如结构体中元素的名字可以和函数中的变量名相同
7)应用:可以使函数带多个返回值
8)不能在结构体中进行输出!!
需要在定义时赋初值,将该变量变为只读变量,不允许重新赋值
如果没有初始化,系统会自己存入一个很小的负数
生命周期是程序运行的整个过程
仍是一个变量,不能做数组长度
关于指针:int * const p —— 指针是常量
int const* p == const int* p ——指针指向的东西是常量
int const* p == const int* p ——指针指向的东西是常量
const int* const p ——指向常量的常量指针