首页 > 解决方案 > 为什么在打印字符串的情况下不使用取消引用?

问题描述

我们如何在 C 中使用字符串名称来打印字符串而不取消引用它?

像这儿:

char str[];
printf("%s",str);

但在数组的情况下,我们使用方括号 [] 取消引用来打印数组:

int a[10];
for(i=0;i<10;i++);
   printf("%d",a[i]);

打印字符串和数组有什么区别?我们需要使用方括号 [] 来取消引用数组,但如果是字符串而不使用任何取消引用printf(); 只是打印字符串的值而不是地址。

标签: arrayscstringprintfdereference

解决方案


因为这就是接口所printf规定的。

  • 在 a 的情况下,"%s"它需要一个指向NUL 终止字符串的指针。
  • 如果是 a"%d"它需要一个int

推荐阅读