static、const和sizeof关键字

2021-12-27  本文已影响0人  兰帕德
一、static关键字

static关键字的作用有如下两个:

二、const关键字

const关键字的作用有如下三个:

const int a = 1; // a的值不能被修改
const int *p1; // p1为指向整型常量的指针,p1的值可以修改,但是p1指向的值不能修改
int *const p2; // p2为指向整型的常量指针,p2的值不能修改,但是p2指向的值可以修改
const int *const p3; // p3为指向整型常量的常量指针,p3及其指向的值都不能修改
- (int)square:(const int)a {
    return a*a;
}
三、sizeof关键字

sizeof是在斌阿姨阶段处理,且不能被编译为机器码。sizeof的结果等于对象或类型所占的内存字节数。sizeof的返回值类型为size_t;

int a; // sizeof(a)为4
int *p; // sizeof(p)为4
int a[5]; // sizeof(a)为4*5(数组大小)
int b[0]; // sizeof(b)为0
struct(int a; char c)s; // sizeof(s)为8,与结构体字节对齐有关

【注1】展开后的结构体的第一个成员的偏移量应当是被展开的结构体中最大的成员的整数倍。
【注2】结构体大小必须是所有成员大小的整数倍,这里所有成员计算的是展开后的成员,而不是将嵌套的结构体当做一个整体。
【注3】不能对结构体中的位域成员使用sizeof。

sizeof(void) // 1
sizeof(void *) // 4
上一篇下一篇

猜你喜欢

热点阅读