C语言的sizeof运算符和size_t类型和求模运算符

752 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

sizeof运算符和size_t类型

sizeof运算符以字节为单位返回运算对象的大小。运算对象可以是具体的数据对象或类型。如果运算对象是类型,则必须用圆括号将括起来。

演示

#include <stdio.h>
int main(){
    int n = 0;
    size_t  intsize;
    intsize = sizeof (int);
    printf("n = %d,n has %zd bytes;all ints have %zd bytes.\n",n,sizeof n,intsize);
    return 0;
}

C语言规定,sizeof返回size_t类型的值。这是一个无符号整数类型,但它不是新的类型。size_t是语言定义的标准类型。

C语言中有一个typedef机制,允许程序员为现有类型创建别名。例如:

typedef double real

这样,real就是double的别名。现在,可以声明一个real类型的变量:

real deal;    //使用typedef

编译器查看real时发现,在typedef声明中real已成为double的别名,于是把deal创建为double类型的变量。类似的,C头文件系统可以使用typedefsize_t作为

unsigned int unsigned long 的别名。这样,在使用size_t类型时,编译器会根据不同的系统替换标准类型。

新增了%zd转换说明用于printf()显示size_t类型的值。如果系统不支持%zd,可使用%u或%lu代替%zd。

求模运算符:%

求模运算符用于整数运算。求模运算符给出其左侧整数除以右侧整数的余数。例如,
13 % 5(读作“13求模5”)得3,因为13比5的两倍多3,即13除以5的余数是3.求模运算符只能用于整数,不能用于浮点数。

求模实际上非常有用的。求模运算符常用于控制程序流。例如,假设你正在设计一个账单预算程序,每3个月要加进一笔额外的费用。这种情况可以在程序中对月份求模3(即 month % 3),并检查结果是否为0.如果为0,便加进额外的费用。如果不为0,则不需要加进额外费用。跟if语句用起来会更好!