1

我对变量参数列表有疑问,对定义为变量列表参数之一的字符字符串的长度是否有任何限制。例如

void ShowVar( int a,char *szTypes, ... );

int main() {
   ShowVar( 4, "Test","string-size");
}

现在我的问题是,这里的字符串大小有什么限制吗?

4

3 回答 3

3

不。

毕竟,调用中传递的只是字符指针。

每个指针的大小是恒定的,无论它指向的字符串中有多少个字符。

于 2013-11-12T12:46:53.603 回答
1

C 语言对 C 字符串的长度没有限制(因为 C 字符串基本上char是末尾带有 NUL 字符的数组)。如您所见,参数的类型是char *,即指向 的指针char。这意味着字符串本身不是作为参数传递的,而是指向其第一个字符的指针——因此字符串的长度与函数调用无关。

(实际上,计算机体系结构和平台当然会有限制,但与典型的字符串参数相比,这些限制非常高。)

于 2013-11-12T12:47:59.873 回答
0

理论上没有。参数char *只是一个指向字符数组的指针。

于 2013-11-12T12:47:38.537 回答