我对变量参数列表有疑问,是否对char字符串的长度有任何限制,定义为变量列表的参数之一。例如
void ShowVar( int a,char *szTypes, ... );
int main() {
ShowVar( 4, "Test","string-size");
}
现在我的问题是,这里的字符串大小有限制吗?
答案 0 :(得分:3)
没有
在调用中传递的所有内容都是字符指针。
每个指针的大小都是常量,无论它指向的字符串中有多少个字符。
答案 1 :(得分:1)
C语言没有限制C字符串的长度(因为C字符串基本上是char
的数组,末尾有NUL字符)。如您所见,参数的类型是char *
,即指向char
的指针。这意味着字符串本身不作为参数传递,而是作为其第一个字符的指针 - 因此字符串的长度与函数调用无关。
(实际上,当然会有计算机体系结构和平台的限制,但与典型的字符串参数相比,这些限制非常高。)
答案 2 :(得分:0)
理论上没有
参数char *
只是指向字符数组的指针。