最近在狂敲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的参数必须是指针!