c - sizeof 运算符在 C 中接受哪些参数?

标签 c parameters pointers arguments sizeof

[原始标题提到“sizeof 函数”。]

我尝试了这些,它们都有效:

char *p;

printf("Size of *p is %d\n",sizeof(*p));  //result =1
printf("Size of  p is %d\n",sizeof( p));  //result =4
printf("Size of  p is %d\n",sizeof(&p));  //result =4

我想知道为什么第一个printf是1,第二个和第三个是4? 那么 sizeof 实际上可以采用哪些参数?

最佳答案

sizeof 不是一个函数,它是一个关键字。你可以去掉括号,它会工作得很好。因为它不是函数,所以它适用于您提供给它的任何类型或对象 - 它比函数灵活得多。

关于c - sizeof 运算符在 C 中接受哪些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557362/

相关文章:

调用从 Ada 返回数组的 C 函数

c - 在 C 中传递参数

javascript - 如何在回调之外赋值

function - Swift - 如何在函数的参数中传递带有参数的函数?

C 通过函数对 char 进行 malloc/free 双指针

将字符串复制到C中的字符指针

c - 如何使用 C 将单个文件复制到 Linux 中的不同分区

c++ - 后缀运算符重载中虚拟参数的用途? C++

c++ - 如何使用 C++ 中的指针将未知大小的多维数组传递给函数?

c - 防止外部调用 lib 文件内的函数