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