当前位置: 首页 > wzjs >正文

小米路由器mini做网站连锁酒店设计网站建设

小米路由器mini做网站,连锁酒店设计网站建设,内蒙古住房建设部官方网站,网站 seo 优化建议目录 ‌1. 基本用法‌(1) ‌基本数据类型‌(2) ‌变量‌(3) ‌数组‌(4) ‌指针‌ ‌2. 特殊用法‌(1) ‌结构体与内存对齐‌(2) ‌动态内存分配‌(3) ‌表达式‌ ‌3. 注意事项‌‌1)sizeof 与 strlen 的区别‌:‌2)变长数组(VLA…

目录

    • ‌1. 基本用法‌
      • (1) ‌基本数据类型‌
      • (2) ‌变量‌
      • (3) ‌数组‌
      • (4) ‌指针‌
    • ‌2. 特殊用法‌
      • (1) ‌结构体与内存对齐‌
      • (2) ‌动态内存分配‌
      • (3) ‌表达式‌
    • ‌3. 注意事项‌
      • ‌1)sizeof 与 strlen 的区别‌:
      • ‌2)变长数组(VLA)‌:
      • ‌3)不要误用‌:
    • ‌4. 常见问题示例‌
      • (1) ‌指针与数组的混淆‌
      • (2) ‌结构体内存对齐‌

在C语言中,sizeof 是一个‌ 编译时运算符‌,用于计算变量、数据类型或表达式在 内存中所占的‌字节数‌。它不是一个函数, 不需要在运行时执行,且 结果是编译时确定的常量(除非操作数是变长数组,VLA)。

‌1. 基本用法‌

(1) ‌基本数据类型‌

printf("int 大小: %zu\n", sizeof(int));       // 通常为4字节(32/64位系统)
printf("char 大小: %zu\n", sizeof(char));     // 固定为1字节
printf("double 大小: %zu\n", sizeof(double)); // 通常为8字节

(2) ‌变量‌

int a = 10;
double b;
printf("变量a的大小: %zu\n", sizeof(a));  // 等价于 sizeof(int)
printf("变量b的大小: %zu\n", sizeof b);   // 括号可省略(仅对变量)

(3) ‌数组‌

计算整个数组的总字节数:

int arr[10];
printf("数组总大小: %zu\n", sizeof(arr)); // 10 * sizeof(int)

计算数组元素个数:

int len = sizeof(arr) / sizeof(arr[0]); // 10

(4) ‌指针‌

指针的大小与指向的数据类型无关,仅取决于系统架构:

int *p;
char *str;
printf("指针p的大小: %zu\n", sizeof(p));    // 32位系统为4字节,64位系统为8字节
printf("指针str的大小: %zu\n", sizeof(str)); // 同上

‌2. 特殊用法‌

(1) ‌结构体与内存对齐‌

结构体的大小可能因内存对齐规则而大于成员大小的简单相加:

struct Example {char c;    // 1字节(对齐到4字节)int i;     // 4字节double d;  // 8字节
};
printf("结构体大小: %zu\n", sizeof(struct Example)); 
// 输出可能是 1 + 3(填充) +4 +8 = 16字节(对齐到8字节边界)

(2) ‌动态内存分配‌

sizeof 无法直接获取动态分配内存的大小:

int *p = malloc(10 * sizeof(int));
printf("p的大小: %zu\n", sizeof(p)); // 输出指针的大小(如8字节),而非分配的内存大小!

(3) ‌表达式‌

计算表达式结果类型的字节数(表达式不会被执行):

int x = 0;
printf("表达式大小: %zu\n", sizeof(x + 3.14)); // 等价于 sizeof(double)

‌3. 注意事项‌

‌1)sizeof 与 strlen 的区别‌:

  • sizeof 计算内存大小(包括字符串的终止符 \0);
  • strlen 计算字符串长度(不包含 \0)。
char str[] = "hello";
printf("sizeof(str): %zu\n", sizeof(str)); // 输出6(5字符 + \0)
printf("strlen(str): %zu\n", strlen(str)); // 输出5

‌2)变长数组(VLA)‌:

C99支持变长数组,此时 sizeof 的结果在运行时计算:

int n = 10;
int vla[n];
printf("VLA大小: %zu\n", sizeof(vla)); // 输出10 * sizeof(int)
‌类型转换‌:
sizeof 的结果类型是 size_t(无符号整数),打印时使用 %zu:printf("size_t大小: %zu\n", sizeof(size_t)); // 通常为8(64位系统)

‌3)不要误用‌:

  • sizeof(指针) 返回指针的大小,而非指向数据的大小!
  • sizeof 无法获取动态数组或堆内存的实际大小。

‌4. 常见问题示例‌

(1) ‌指针与数组的混淆‌

void func(int arr[]) {// arr 退化为指针!printf("函数内数组大小: %zu\n", sizeof(arr)); // 输出指针大小(如8字节)
}int main() {int arr[10];printf("main中数组大小: %zu\n", sizeof(arr)); // 输出40(假设int为4字节)func(arr);
}

(2) ‌结构体内存对齐‌

struct A {char a;     // 1字节int b;      // 4字节(对齐到4字节边界)short c;    // 2字节(对齐到2字节边界)
};
// 总大小:1 + 3(填充) +4 +2 +2(填充) = 12字节(对齐到4字节)
printf("struct A大小: %zu\n", sizeof(struct A)); 

‌总结‌

‌用法‌示例‌‌说明‌
基本类型大小sizeof(int)返回类型的字节数
变量大小sizeof(a)等价于变量类型的 sizeof
数组总大小sizeof(arr)数组元素个数 × 单个元素大小
指针大小sizeof(int*)取决于系统架构(4或8字节)
结构体大小sizeof(struct Example)考虑内存对齐规则

合理使用 sizeof 可以避免硬编码数据类型大小,增强代码的可移植性。


文章转载自:

http://UE1NnMIx.ssxLt.cn
http://TULE3p6s.ssxLt.cn
http://xLInEaMt.ssxLt.cn
http://XV65HcEo.ssxLt.cn
http://tnr7BZ03.ssxLt.cn
http://uu50tdXU.ssxLt.cn
http://nNZi11b7.ssxLt.cn
http://mHTO5uaQ.ssxLt.cn
http://sABDY853.ssxLt.cn
http://GJTZxfL2.ssxLt.cn
http://pw7UXT6n.ssxLt.cn
http://WHcvj7MM.ssxLt.cn
http://4tB3tpUw.ssxLt.cn
http://jsI3bRBr.ssxLt.cn
http://ieDpspzr.ssxLt.cn
http://pOp8S89n.ssxLt.cn
http://tbzGKyU4.ssxLt.cn
http://K2ixB8dj.ssxLt.cn
http://4CKTAeb1.ssxLt.cn
http://XjyRi6ev.ssxLt.cn
http://3b1q7ntp.ssxLt.cn
http://fWAvCQH7.ssxLt.cn
http://MD8ZVOnu.ssxLt.cn
http://gTOf6wAm.ssxLt.cn
http://r7DyoS6R.ssxLt.cn
http://gBOjceAZ.ssxLt.cn
http://WGJFKDqO.ssxLt.cn
http://9xBQuNQN.ssxLt.cn
http://wFhTGzJc.ssxLt.cn
http://JDbTENGJ.ssxLt.cn
http://www.dtcms.com/wzjs/651500.html

相关文章:

  • vs做的网站如何丹徒网站建设
  • 一键优化下载安装即墨网站优化
  • ftp替换网站图片vx小程序怎么做
  • .net做网站的优缺点建设银行贷款网站
  • 北京商城网站建设地址适合女孩做的网站
  • 什么是网站主办者推广互联网推广
  • 怎么用本机做服务器发布网站手表网
  • 莲湖免费做网站浙江住房与城乡建设厅官方网站查询
  • 可以做视频推广的网站正能量不良网站直接进入
  • 做区块链网站需要注意哪些备案的网站名与公司名称
  • 太原网站建设制作公司哪家好不限关键词做网站平台
  • 别墅室内设计网站seo诊断专家
  • 亲子乐园网站建设规划行业网站建设费用明细
  • 锦州网站优化中国住房和城乡建设部网站资质查询
  • 网站建设需要通过哪些审批网站建设 开发 模板
  • 云南省火电建设公司网站网站网页设计专业公司
  • 整形网站模板wordpress 股票交易
  • 企业微信网站开发中国建设银行电话
  • 网站开发者收入来源wordpress媒体库不显示
  • 怎么注册微网站山西太原建站怎么做
  • 哈尔滨网站建设制作dw怎么做网站地图
  • 如何做网站的图片滑动块一键搭建云免流服务器
  • 最早做网站的那批人群晖WordPress绑定域名
  • 是阿里巴巴好还是自己做网站好?黑龙江网站建设seo优化
  • 北京南站到故宫地铁怎么坐哔哩哔哩免费网站观看
  • 建设工程人才招聘信息网站虚拟主机网站建设过程
  • 百度云做网站有优势吗wordpress排队加载
  • 如何做局域网网站建设网站需要申请什么
  • 岷县城乡建设局网站网络服务商和网络运营商
  • 工业和信息化部五系网站建设宋朝网站应该怎么做