c - 当 printf 一个字符串时,我们没有使用 *. 为什么?
问题描述
在 c 编程中,当我们打印一个字符串时。我们没有使用 * 。但是当使用 printf 打印数字时,我们使用 *. 那么它是如何理解的,我正在打印一个字符串或整数。理解使用 %s 运算符吗?
附上示例代码
#include<stdio.h>
int main(int argc,char* argv){
char data[]="This is an example of pointer";
char *pointerstringdata =data;
printf("print the string data is >> %s\n",pointerstringdata); /* Here we are not using * why? case -1*/
int numberdata =100;
int *pointerintdata=&numberdata;
printf("print the int data is >> %d\n",*pointerintdata); /* Here we are using * why? case -2*/
return 0;
}
解决方案
当我们打印一个字符串时。我们没有使用 * 。但是当使用 printf 打印一个数字时,我们使用 *
因为d
转换说明符需要一个int
,而s
转换说明符需要一个指针(指向 achar
并以此指向以 -0
终止的char
数组的第一个元素,这实际上是 C 用来模仿通常称为“字符串”的东西)。
推荐阅读
- c# - Asp.net c# reverse dns lookup to get computer name failed for some client
- wordpress - Stager iframe 售票处嵌入 wordpress
- json - 更改共享点列表中列的背景颜色
- excel - Excel vba:在同一个工作表中同步两个下拉列表
- matlab - 如何标记 500 值以下的内容?
- c++ - 为什么我只能使用 auto 类型创建函数别名?
- python - Python:循环后创建所有变量返回
- python - 无法在 Windows 上安装 Thinbgsboard IoT Gateway
- c++ - 如何用 QtCharts 绘制非连续的时间序列轴?
- matlab - 没有工具箱的Matlab中的模数