海涛从不浪 2017-06-16 10:02 采纳率: 0%
浏览 3277

字符指针数组输出前不用加*

#include
main(){
char* pa[7]={"sunday","monday","tuesday","wednesday"};
int i=1;
printf("%s",pa[i]);
int* a[7];
a[i]=&i;
printf("%d",*a[i]);

}

为什么printf("%s",pa[i]);的pa[i]前不用加*
而printf("%d",*a[i]);的a[i]前加*

  • 写回答

5条回答 默认 最新

  • 柯西的彷徨 2022-02-09 18:25
    关注
    1. 字符串本身就代表字符串的首地址,pa[i]的值即为一个字符串,使用%s格式符可以直接将整个字符串打印输出;而*pa[i]是对字符串解引用,表示字符串的第一个字符。
    2. a[i]指向的是一个整型变量,保存的是它的地址,所以输出时需要解引用——*a[i],读出该地址里面的值。
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog