聊点基础的–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