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

时间:2013-11-12 12:44:19

标签: c

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

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

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

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

3 个答案:

答案 0 :(得分:3)

没有

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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