What does sizeof (function(argument)) return?

后端 未结 4 700
滥情空心
滥情空心 2020-12-19 06:31

What will be the output of program

#include 

int fun(char *a){
    printf(\"%d\\n\",sizeof(a));
    return 1;
}

int main(){
    char a[20];
         


        
4条回答
  •  Happy的楠姐
    2020-12-19 07:25

    Except with variable length arrays, sizeof does not evaluate its operand. So it will just yield the size of fun(a) type, i.e. sizeof(int) (without calling the function).

    C11 (n1570) §6.5.3.4 The sizeof and _Alignof operators

    2 [...] If the type of the operand is a variable length array type, the operand is evaluated; otherwise, the operand is not evaluated and the result is an integer constant.

提交回复
热议问题