C语言求字符串数组的长度

在C语言编程中,直接使用sizeof(array)会得到整个数组的字节大小,而不仅仅是字符串的长度。正确计算字符串数组长度的方式是sizeof(array)/sizeof(*array)。这个方法同样适用于其他类型的数组和结构体数组。文中提供了一个测试程序来演示了这种计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中碰到了有人直接使用sizeof(array)当做字符串数组的长度,这样使用是不对的正确的使用应该是sizeof(array)/sizeof(*array)来求字符串数组的长度。

同时,其他类型的数组长度也可以通过这种方式来求。

  • 字符串数组
  • 基本类型数组(char, short, int, float, double 等)
  • 结构体类型数组

 测试程序

  1 #include <stdio.h>
  2 
  3 int main(void)
  4 {
  5     static const char* array_str[] = {
  6         "hello1",
  7         "hello2",
  8         "hello3"
  9     };
 10 
 11     printf("sizeof(array_str): %d\n", sizeof(array_str));
 12     printf("array_str len: %d\n", sizeof(array_str) / sizeof(array_str[0]));
 13     return 0;
 14 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值