对变量参数列表中定义的字符串长度是否有任何限制

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

void ShowVar( int a,char *szTypes, ... ); int main() { ShowVar( 4, "Test","string-size"); } 

现在我的问题是,这里的字符串大小是否有任何限制?

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

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

没有。

在调用中传递的所有内容都是字符指针。

无论指向的字符串中有多少个字符,每个指针的大小都是常量。

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