所以C / C++数组不知道它们的长度,对吗?但是,当函数sizeof(array)
不应该知道数组中元素的数量时,它如何工作并为我们提供适当的字节大小?
最佳答案
您的假设是错误的。除了C99中引入的可变长度数组外,C和C++中的数组都具有在编译时已知的大小。编译器知道它们的大小。
您的困惑很可能是因为有时数组名称会衰减为指向其第一个元素的指针(就像当作为函数参数传递时一样),这的确是在这里丢失了大小信息。
但是,当在数组上使用sizeof
时,该数组不会转换为指针。这是您的另一个困惑:sizeof
是,而不是是一个函数,它是一个运算符。
关于c++ - C/C++中的sizeof()用于数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22878352/