我正在学习 C 为 Linux 开发,我正在尝试从作为函数参数的数组中获取sizeof() 。sizeof总是返回 8(即指针的大小)所以问题是,在 C 中所有参数都是指针吗?如果不是这段代码有什么问题?
#include <stdio.h>
#include <stdlib.h>
int println(char text[]);
int main()
{
char text[] = "Helloabc";
int x = println(text);
x = x + 48;
char y[] = { (char)x };
printf("%s\n", y);
return 0;
}
int println(char text[])
{
int size = sizeof(text) / sizeof(text[0]);
int size1 = sizeof(text);
int size2 = sizeof(text[0]);
printf("%i\n", size1);
printf("%i\n", size2);
return size;
}
这段代码产生了这个返回:
8
1
8Helloabc
这也是出于某种奇怪的原因打印“Helloabc”。