聊点基础的–sizeof,strlen,数组,字符串在一起能整哪些坑?

  • 2019 年 11 月 24 日
  • 筆記

来源:公众号【编程珠玑】

作者:守望先生

ID:shouwangxiansheng

对于初学者来说,sizeof,strlen,数组,字符串整在一起是痛苦的,它总能在某些莫名其妙的时候整一个措手不及。本文看看它们在一起能挖什么坑。

例子

在说明这些问题之前,先看一段代码,看看你是否都理解了。(注:以下代码结果为编译为64位程序后运行结果)

//来源:公众号【编程珠玑】  #include <stdio.h>  #include <string.h>  void testArr(const char str[])  {      printf("%lu %lun", sizeof(str), strlen(str));  }  int main(void)  {      /*test 0*/      char str[] = "hello";      printf("test0 %lu %lunn", sizeof(str), strlen(str)); //6 5        /*test 1*/      char str1[8] = "hello";      printf("test1 %lu %lunn", sizeof(str1), strlen(str1)); //8 5        /**test 2*/      char str2[] = {'h','e','l','l','o'};      printf("test2 %lu %lunn", sizeof(str2), strlen(str2)); //5 10        /**test 3*/      char *str3 = "hello";      printf("test3 %lu %lunn", sizeof(str3), strlen(str3)); //8 5        /*test 4*/      char str4[] = "hello";      testArr(str4);//8 5        /*test 5*/      char str5[] = "hell