C语言部分关键字

1.      static: 修饰局部变量(只在初次运行时,进行初始化工作)  全局变量(只是本.c文件可见)   函数(类似于全局变量)

2.      extern:编译器并不匹配extern的函数的参数列表,只做函数名匹配!

3.      typedef:重定义过的数据类型,对于typedef char* newC;   newC a,b;,这时候会将a b都定义为char *,而使用char *a,b或者define获得效果都是只能把a定义为char *,而b还是char而已

4.      typedef char * ptrC;  const ptrC p2 = string;  这里并不是和define效果一样,简单的替换,而是变为const 修饰了p2这个指针变量是常量。

5.      #define的好处:可以使用ifndef  undef ifdef等;唉进行逻辑判断。

6.      typedef的好处:定义的变量类型范围被限制在所定义的函数或者文件内。

7.      int *( *(*fp) (int))[10];   解释:fp是一个函数指针,指向一个形参为一个int型数据的,返回值是一个指向有10个指针的指针数组的指针,该指指针数组里的每一个元素指向一个整型。

8.      int *(*(*arr[5])( ))( );   解释:arr是函数指针数组,数组中每个元素指向一个形参为空,返回值是一个指向函数指针的指针,该函数形参为空,返回值为int型。

9.      float (*(*b( )) [ ])( );   解释:b是一个函数指针,该函数参数为空,返回值指向一个函数指针数组,数组中的每一个元素都指向一个函数参数为空,返回float型的函数。

10.  float( *(*e[10])(int *))[5];  解释:e是函数指针数组,每个元素指针指向一个函数参数为int *,返回值指向一个数组指针,数组大小为5,类型为float的函数。

11.  sizeof a/(a)    而 sizeof(int)必须加括号

12.  为什么一个字节的范围为 -2^7 – 2^7-1  ? 补码表示,-128取反加一,得到数字就是最小,而整数取反加一是本身,而且最高位为符号位,所以最大为2^7-1

13.  unsigned int + int ->unsigned int

14.  struct student str = {.account= 1, .name = “xx”, .age = 3};可以这样初始化

15.  结构体大小:以最长的成员长度进行分配(无论这个最长的成员位于什么位置,整个结构体为每个变量分配的长度就是最长的字节数)

struct stu

{

                  intnum;

         chara;

         longlongname;

};  大小为16 = (4 + 1) + 8  = 8 + 8          

16.  结构体成员后为;  枚举成员后为,   联合union 成员后为; 

17.  枚举和#define的区别:1)#define 在预编译阶段进行简单的替换,枚举常量则是在编译的时候确定其值;  2)一般在编译器里,可以调试枚举常量,但是不能调试宏常量;  3)枚举一次可以定义大量相关的常量,而define只能一次定义一个。

18.  枚举的大小:一般为4个字节,为一个整型int的大小,和其中的常量个数无关,因为是常量,所以不具有内存空间大小。

19.  联合体的大小:取联合中最长的成员长度,注意对齐方式VS2013采用以最短成员为对齐长度!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值