憨学学 2023-03-08 17:54 采纳率: 90.9%
浏览 14
已结题

指针的基础地址理解问题

第一个输出是为什么哦,纯为了理解


#include<stdio.h>
int main()
{
    
    char a[] = {'a','b','\0'};
    printf("%c\n", a);//输出$
    printf("%s\n", a);//输出ab
    
    printf("%p", a);
    return 0;
}
  • 写回答

3条回答 默认 最新

  • 随风4928579 2023-03-08 18:04
    关注

    第一个输出 %c 是以字符格式输出变量 a 的第一个元素,但是变量 a 是一个字符数组,只给出了数组的第一个元素,没有给出数组名或数组下标,因此编译器并不知道要输出哪个元素,于是随机返回了一个字符。$ 并不是公认的随机字符,输出结果可能因编译器和操作系统的不同而有所差异。

    正确的输出方式应该是 printf("%c\n", a[0]);,指明要输出数组 a 的第一个元素。

    以下是修正过的代码,可以正确输出:

    #include<stdio.h>
    
    int main()
    {
        char a[] = {'a','b','\0'};
        printf("%c\n", a[0]); //输出a
        printf("%s\n", a); //输出ab
        printf("%p\n", a); //输出 a 的地址
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
  • ¥15 传感网应用开发单片机实训
  • ¥15 Delphi 关于sAlphaImageList使用问题
  • ¥15 寻找将CAJ格式文档转txt文本的方案
  • ¥20 数电设计提问求帮助,出租车计费器
  • ¥15 shein测试开发会问些啥我是写java的
  • ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
  • ¥15 opnet仿真网络协议遇到问题
  • ¥15 在安装python的机器学习程序包scikit-learn(1.1版本)时遇到如下问题
  • ¥15 要用 STM8L050J3M3TR 输出1路PWM 没有输出 不知道是不是 复用IO需要配置还是 定时器初始化的问题