最近在很多地方看到很多人在C语言中把sizeof当成一个函数来理解,包括有10多年C经验的人,我感到十分惊讶。今天给大家纠正一下错误的概念:sizeof是一个操作符,不是函数
sizeof操作符的三种用法:
sizeof(object);//sizeof(对象);
sizeof(type_name);//sizeof(类型);
sizeof object;//sizeof对象; 比喻说:char q=‘a’;
char *p=&q;
int N=sizeof * p;
这段代码将指针p所指向的q(*p)作为操作数,它返回的是p所指向对象的类型的字节数。
当sizeof的操作数是类型名时,两边需要加上括号,这使得很多人认为它是一个函数,其实它是操作符!