【发布时间】:2019-09-22 20:25:04
【问题描述】:
我对函数 check() 调用后的不同 sizeof() 返回值感到困惑。并且 buf 与 buffer 完全相同,基于每个字符的 printf()。任何回复都很棒!谢谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void check(char *buf)
{
printf("%d \n", sizeof(buf)); // **output 8**
}
int main(int argc, char *argv[])
{
char buffer[] = "\x64\x49\x00\x55\x33\x33\x33\x64\x49\x00\x00\x00\x55\x33\x33\x33\x64\x49\x00\x00\x00\x55\x33\x33\x64\x49\x00\x00\x00\x55\x33\x33";
printf("%d\n", sizeof(buffer)); // **output 33**
check(buffer);
}
【问题讨论】:
-
指针大小与数组大小?