C++中siseof和size_t
sizeof 以字节为单位返回运算对象的大小
运算对象可以是具体的数据对象(如 变量名)或类型
如果运算对象是类型(如 float),则必须用圆括号将其括起来
好习惯,使用 sizeof运算符的时候,始终使用小括号将运算对象括起来
点击查看代码
// 使用C99新增的%zd转换说明 --如果编译器不支持%zd,请将其改成%u或%lu
#include<stdio.h>
int main(void)
{
int n = 0;
size_t intsize;
//intsize = sizeof(int);
intsize = sizeof n;
printf("n=%d,n has %zd bytes; all ints have %zd bytes .\n", n, sizeof n, intsize);
return 0;
}
typedef double real;
这样,real就是double的别名。现在,可以声明一个real类型的变量:
real real;//使用typedef
类似地,C头文件系统可以使用typedef把size_t作为unsigned int或unsigned long的别名。
typedef unsigned int int size_t;
C语言标准并没有明确规定size_t的确切类型,但通常将其定义为无符号整数类型,
以确保能容纳任何对象的大小。因此,具体的视线可能会根据平台和编译器而有所不同。在使用size_t类型时,编译器会根据不同的系统替换
标准类型,增加可移植性。
C99做了进一步调整,新增了%zd转换说明用于printf()显示size_t类型的值。
如果系统不支持%zd,可使用%u或%lu代替%zd
点击查看代码
#include<stdio.h>
typedef double real;
int main(void)
{
size_t age = 10;
printf("age is %d", age);
return 0;
}