在将数组传递给像printf这样的可变函数时,我应该将数组转换为指针吗?

sas*_*alm 4 c c++ printf

我可以直接将数组传递给printf:

char text[1024] = "text";
printf("%s", text);
Run Code Online (Sandbox Code Playgroud)

或者我应该将它明确地转换为char指针:

char text[1024] = "text";
printf("%s", (char*) text);
Run Code Online (Sandbox Code Playgroud)

我问,因为我认为它可能会将数组元素直接复制到va_list中,而不是仅仅指向第一个元素.

Sum*_*Tea 6

是的,您可以直接传递数组.确切地说,数组的名称表示与之无关的数组的地址char *.