-
sizeof是操作符,不是函数。它后面的()并不是必须的,没有歧意时就不必写上了。sizeof操作符计算的是系统为它后面的变量或类型名分配的空间大小,无论其中是否存储了有用数据。
-
strlen()是库函数,()中必须是字符串指针或字符串常量,它返回的是检测对象中第一个'\0'前的字符个数,不含'\0'。
下面的代码可能对此解惑:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
char s[50]="1234",p[100]={'f','j','k','d','s','a','l','\0','1','2','3','4','5','\0'};
printf("sizeof(s) = %d\n",sizeof s);//这里s没有加(),也正确
printf("strlen(s) = %d\nstrlen(p) = %d\n",strlen(s),strlen(p));
//上句检测p时遇到第一个'\0'就结束了
return 0;
}
阅读(712) | 评论(0) | 转发(0) |