1.sizeof运算符:
sizeof运算符以字节为单位返回变量或某个数据类型的大小,这里的变量或数据类型可以是数组、结构、指针或其他任何内部数据类型。
当操作数是一个类型时,必须用圆括号括起来,当操作数是一个变量的标识符时,圆括号可有可无。
简单的例子如下:
int w;
int* x;
int y[5];
struct z { int a,b,c };
struct z zs;
struct z* zp;
sizeof w;
sizeof(int);
sizeof x;
sizeof &w;
sizeof *x;
sizeof y;
sizeof(struct z);
sizeof zs;
sizeof zp;
程序可以利用sizeof运算符方便地获得结构的大小以及输入/输出缓冲区的大小。
当然也能动态的计算数组元素的个数。例如:
2.typedef运算符:
typedef并不是真正的存储类,把它和static,extern,register还有auto等存储类并列的原因是:在语法上,他们都出现在声明的同一位置;他们是互斥的。因此,typedef也被称为存储类修饰符。但是,typedef的作用是不一样的,它用于给已存在的类型起一个别名:
注意:
typedef存储类对指针和结构也同样适用。
typedef struct window
{
char *title;
int x,y;
int ht,wd;
} * WINDOW;