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

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

#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],读出该地址里面的值。
    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败