首页 > 解决方案 > 当 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;
}

标签: cstringprintfc-stringsconversion-specifier

解决方案


当我们打印一个字符串时。我们没有使用 * 。但是当使用 printf 打印一个数字时,我们使用 *

因为d转换说明符需要一个int,而s转换说明符需要一个指针(指向 achar并以此指向以 -0终止的char数组的第一个元素,这实际上是 C 用来模仿通常称为“字符串”的东西)。


推荐阅读