一、 putchar与printf
输出功能比较
printf 可以输出一个任意的字符串,还可以有参数,而putchar只能输出一个字符(
如果在putchar里面输入多个字符,putchar只会输出最后一个)。
putchar('aaab');
putchar('\n');
putchar('opopw');
putchar('opopw\n');
返回值比较
printf 的返回值是正常输出的参数的数量,而 putchar 则是是否正常输出。
从底层来说,区别更大:
printf 的时间复杂度是 O(nlogn), 而 putchar 复杂度是 O(1),输出句子也只有O(n)。
此外,printf 每执行一次,解析一次格式串,而putchar是编译时尽量优化。
总结:
printf功能更强大可以输出各种格式。
putchar只能输出单个字符。
因为字符的处理很特殊,所以专门有对字符的处理,如 putchar ,getchar 之类的
二、sizeof与strlen
strlen产生的原因:需要计算字符串中有效字符的个数
sizeof计算的是整个数组的大小包括无效字符’\0’
strlen计算的是数组中有效字符的个数,不包括字符’\0’
char a1[5] = "hi";
char a2[] = "hi";
printf("使用sizeof得到字符串a2中元素的个数为:%d\n",sizeof(a2)/sizeof(char));
printf("使用sizeof得到字符串a1中元素的个数为:%d\n",sizeof(a1)/sizeof(char));
printf("使用strlen得到的字符串中元素的个数:%d\n",strlen(a1));