倚风听雨. 2022-01-03 12:32 采纳率: 60%
浏览 53
已结题

scanf奇怪的用法

学习图的时候发现了一条很奇怪的代码: scanf(&G->vexs[i])

整个代码是:


```c
void CreateMGraph(MGraph*G)
{
    int i,j,k,w;
    printf("Input the numVertexes and the numEdges:\n"); 
    scanf("%d %d",&G->numVertexes,&G->numEdges);
    for(i=0;i<G->numVertexes;i++)
    scanf(&G->vexs[i]);//就是这一句
    for(i=0;i<G->numVertexes;i++)
        for(j=0;j<G->numEdges;j++)
            G->arc[i][j]=INFINITY;
    for(k=0;k<G->numEdges;k++)
    {
        printf("输入边(i,j)的下标i,j和权数:");
        scanf("%d %d %d",&i,&j,&w);
        G->arc[i][j]=w;
        G->arc[j][i]=G->arc[i][j];
    }
}

```

  • 写回答

2条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-01-03 13:05
    关注

    格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。
    但是像这种scanf(&G->vexs[i]); 我们常规来说,不使用这种方式,像这里这样使用我感觉不合理。
    你如果是在C++中cin>>G->vexs[i];是可以的,但是在C中,scanf(&G->vexs[i]);,尽量还是要符合格式控制输入的格式。
    希望对题主有所帮助,可以的话还请点下采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 创建了问题 1月3日

悬赏问题

  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!
  • ¥100 Excel 点击发送自动跳转outlook邮件