感悟:sizeof和strlen的区别

最近在狂敲ACM的代码,好多好多C语言的技巧都忘记了。 于是只能一点点的去拾起来

比如sizeof 和strlen  。其实在面试笔试中,经常被问到这个题目。每次都回答得很含糊。。

于是这次想加深一些印象。


首先,在编译之前,sizeof就已经被计算过大小了。而strlen必须是在程序运行时才计算大小的。

比如:char c[20]={0123456789};

int si=sizeof(c);

int sz=strlen(c);

pritnf("%d---%d",si,sz);

答案是20和10


所以sizeof只能计算静态分配的大小。

而sizeof是运算符,而strlen是函数


另外sizeof的参数可以是数组函数指针类型,strlen的参数必须是指针!


你可能感兴趣的:(感悟:sizeof和strlen的区别)