C语言中sizeof和strlen有何使用差异及适用场景?

更新于
2026-10-10 13:00:26
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计872个文字,预计阅读时间需要4分钟。

C语言中sizeof和strlen有何使用差异及适用场景?

目录 + 1. sizeof 与 strlen + 2. short a[100],sizeof(a) 返回? + 3. 下述程序在32位 Linux 或 Unix 中的结果是? + 4. sizeof 与 strlen 的区别本质上是什么? + 例子:sizeof(char c[])=

目录
  • 1、sizeof与strlen
  • 2、short a[100],sizeof(a)返回?
  • 3、下列程序在32位 linux 或 unix 中的结果是什么?
  • 4、sizeof与strlen的区别本质上而言

先上一个例子:

结果:

1、sizeof与strlen

char c[] = “abc\0cba”;

问题1:sizeof(c) = ?

问题2:strlen(c) = ?

问题3:执行free(c);之后会有什么后果?

解答1:8

解答2:3 (判断字符串a的长度,这个长度不包括"\0")

解答3:段错误

2、short a[100],sizeof(a)返回?

A 2 B 4 C 100 D 200 E 400

答案:D

段错误:指访问的内存超出了系统所给这个程序的内存空间。

阅读全文

本文共计872个文字,预计阅读时间需要4分钟。

C语言中sizeof和strlen有何使用差异及适用场景?

目录 + 1. sizeof 与 strlen + 2. short a[100],sizeof(a) 返回? + 3. 下述程序在32位 Linux 或 Unix 中的结果是? + 4. sizeof 与 strlen 的区别本质上是什么? + 例子:sizeof(char c[])=

目录
  • 1、sizeof与strlen
  • 2、short a[100],sizeof(a)返回?
  • 3、下列程序在32位 linux 或 unix 中的结果是什么?
  • 4、sizeof与strlen的区别本质上而言

先上一个例子:

结果:

1、sizeof与strlen

char c[] = “abc\0cba”;

问题1:sizeof(c) = ?

问题2:strlen(c) = ?

问题3:执行free(c);之后会有什么后果?

解答1:8

解答2:3 (判断字符串a的长度,这个长度不包括"\0")

解答3:段错误

2、short a[100],sizeof(a)返回?

A 2 B 4 C 100 D 200 E 400

答案:D

段错误:指访问的内存超出了系统所给这个程序的内存空间。

阅读全文