arrays - 为什么在打印字符串的情况下不使用取消引用?
问题描述
我们如何在 C 中使用字符串名称来打印字符串而不取消引用它?
像这儿:
char str[];
printf("%s",str);
但在数组的情况下,我们使用方括号 [] 取消引用来打印数组:
int a[10];
for(i=0;i<10;i++);
printf("%d",a[i]);
打印字符串和数组有什么区别?我们需要使用方括号 [] 来取消引用数组,但如果是字符串而不使用任何取消引用printf(); 只是打印字符串的值而不是地址。
解决方案
因为这就是接口所printf
规定的。
- 在 a 的情况下,
"%s"
它需要一个指向NUL 终止字符串的指针。 - 如果是 a
"%d"
它需要一个int。
推荐阅读
- python - 转换具有多个 dict 外观的字符串
- php - 无法使用 PHP 调用 oracle 存储过程
- java - 在项目的构建路径中添加用户库
- javascript - 替换字符串中的多次出现
- spring-boot-actuator - Spring boot2 执行器健康状况为 404
- authorization - 如何在 jBloomberg 代码中使用 auth_setup_template
- c# - 如何防止在托管代码中创建并传递给非托管代码的函数指针被垃圾收集
- html - 以 HTML5/JS 流式传输视频
- javascript - 如何在javascript中验证用户是否通过firebase登录
- excel - 如何遍历命名范围