size of

该博客主要展示了C语言代码,包含字符数组、指针的定义,以及float、int等变量的声明。还定义了func和tenof函数,前者用于输出数组内存大小,后者用于将参数乘以10。最后给出了各变量和数组的sizeof及strlen计算结果,以及tenof函数的调用输出。

 char s1[]="";
 char s2[]="Hello world!";
 char *p = s2;
 char *q = s1;
 char *r = (char *)malloc(100);
 char str1[]="123456789";
 char *a[]={"123","asdfsdf","0kle3340j"};
 
 char s3[10]={'m','o','b','i','l'};
 char s4[20]={'A','N','S','I','/0','C','+','+'};
 char s5[8]={'I','S','O','C','+','+','M'};

 int i;
 int j = 10;
 float f;
 float k=12.45;
 long l;
 double d;

void func(char str[100])
{
 printf("sizeof---str=%d/n",sizeof(str));
}

int tenof(char par)
{
 return par*10;
}

func(str);

printf("tenof(100)=%d",tenof(100));
printf("tenof(127)=%d",tenof(127));
printf("tenof(128)=%d",tenof(128));
printf("tenof('i')=%d",tenof('i'));

=========================================

sizeof(s1)=1
sizeof(s2)=13
sizeof(p)=4          //s2的首地址值的字节数是4位
sizeof(q)=4
sizeof(r)=4
sizeof(str)=4

strlen(s3)=5
strlen(s4)=4
strlen(s5)=7

sizeof(i)=4          //int型变量的地址字节数是4位
sizeof(j)=4
sizeof(f)=4
sizeof(k)=4
sizeof(l)=4
sizeof(d)=8          //double型变量的地址字节数是8位

sizeof(a)=12
sizeof(a[0])=4
sizeof(a[1])=4
sizeof(a[2])=4

sizeof---str=4
tenof(100)=1000
tenof(127)=1270
tenof(128)=-1280    //ASCII 编码只有 000~127 是标准的
tenof('i')=1050

### C++ 中 `sizeof` 运算符的用法与示例 `sizeof` 是 C++ 中的一个运算符,用于确定数据类型或对象在内存中的大小(以字节为单位)。它是一个编译期运算符,因此其结果在编译时已知[^4]。 以下是 `sizeof` 的一些关键点和用法: 1. **基本数据类型的大小**: 使用 `sizeof` 可以计算基本数据类型(如 `int`、`float`、`double` 等)的大小。 ```cpp cout << "Size of int: " << sizeof(int) << " bytes" << endl; cout << "Size of float: " << sizeof(float) << " bytes" << endl; cout << "Size of double: " << sizeof(double) << " bytes" << endl; ``` 2. **指针类型的大小**: 无论指针指向什么类型的数据,`sizeof` 返回的结果通常是相同的(取决于系统架构,如 32 位或 64 位)。 ```cpp int* ptr = nullptr; cout << "Size of pointer: " << sizeof(ptr) << " bytes" << endl; ``` 3. **数组的大小**: 对于静态数组,`sizeof` 可以返回整个数组的大小(以字节为单位)。通过结合数组元素的数量,可以计算单个元素的大小。 ```cpp int arr[5]; cout << "Size of array: " << sizeof(arr) << " bytes" << endl; cout << "Size of one element: " << sizeof(arr[0]) << " bytes" << endl; ``` 4. **结构体的大小**: 结构体的大小可能受到对齐方式的影响。`sizeof` 返回的是包含所有成员变量以及填充字节的总大小。 ```cpp struct Example { char a; int b; }; cout << "Size of struct: " << sizeof(Example) << " bytes" << endl; ``` 5. **动态分配的内存**: 对于动态分配的内存(如使用 `new`),`sizeof` 仅返回指针本身的大小,而不是分配的内存大小。 ```cpp int* dynamicArr = new int[10]; cout << "Size of pointer to dynamic array: " << sizeof(dynamicArr) << " bytes" << endl; delete[] dynamicArr; ``` ### 示例代码 以下是一个综合示例,展示如何使用 `sizeof` 计算不同类型和对象的大小: ```cpp #include <iostream> using namespace std; struct Example { char a; int b; }; int main() { cout << "Size of int: " << sizeof(int) << " bytes" << endl; cout << "Size of float: " << sizeof(float) << " bytes" << endl; cout << "Size of double: " << sizeof(double) << " bytes" << endl; int* ptr = nullptr; cout << "Size of pointer: " << sizeof(ptr) << " bytes" << endl; int arr[5]; cout << "Size of array: " << sizeof(arr) << " bytes" << endl; cout << "Size of one element: " << sizeof(arr[0]) << " bytes" << endl; Example ex; cout << "Size of struct: " << sizeof(Example) << " bytes" << endl; int* dynamicArr = new int[10]; cout << "Size of pointer to dynamic array: " << sizeof(dynamicArr) << " bytes" << endl; delete[] dynamicArr; return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值