①strlen()函数作用:计算字符串的长度,当遇到“ ”字符时结束,即遇到数值“0”时结束计算,有一点特别要注意当这个函数用来计算数组的长度的时候遇到数值0他就停止计算了!
②registerkeyword修饰的变量不能够使用“&”取地址符来获取地址,由于它可能不在内存。
③ 问:“static”keyword修饰的变量能被改变不?答:肯定能够,它在编译的时候放在静态区,生长期是在整个程序的执行的周期。
④keyword“const”修饰的变量的属性是仅仅读。注意它是变量,其值在编译期间是不能被使用的,因此,在定义数组的时候千万不要傻叉一样拿const变量来指定数组的个数,这样是编译只是的
⑤“const”keyword修饰指针变量时跟位置有关,且看以下的样例const int *p; 和 int const *p; //两个一样*p仅仅读,p可变
int * const p; //*p可变,p不可变
const * const p; //两个都不可变归纳为一句话就是:忽略类型名。“近水楼台先得月”。哈哈。好好意会意会^_^
说到类型名。有一点不得不说。typedef出来的是“新的”类型名,记得喔,遇到const时也要会变。⑥volatile可防止代码被编译器自做多情地优化。看一个样例
int i=10;⑦写一个測试代码来推断当前系统的存储方式是大端(高地址存低字节)还是小端
int j=i; //运行完这一句。编译器并没有把赋给j的值丢掉
int k=i; //继续使用上面没有丢掉的值,不会产生汇编代码去又一次载入i的值看。要是期间有谁改变了i值不就出事了!
...
union test_mod
{
int i;
char ch;
}c;
c.i=1;
return (c.ch); //假设返回的是1,说明是小端模式
⑧enum枚举类型:枚举常量在编译时确定其值。从有赋值处開始依次加1。假设没有赋值则从0開始加
#include <stdio.h>
void main()
{
char len=0;
enum ColorVal
{
BLUE=1,YELLOW,RED,ORANGE,GREEN
} MyColor;}
len = sizeof(MyColor);
printf(" yellow = %d ",YELLOW);
printf(" sizeof(MyColor) = %d ",len);
结果:
原因:枚举变量是int型的,上面定义的MyColor就是一个枚举变量。而枚举变量一个时刻仅仅能取一个值。这个值就是从枚举的“区间”里边取出来的。所以说,接下来不用说都明确啦
有一点要注意的是枚举变量里面的成员是能够单独拿出来使用的,成员是常量哦。并且记住不能MyColor.BLUE类似于结构体那样的操作
好好学C,一步两步,一步两步!