爱问知识人 爱问教育 医院库

请教高手C语言的一个问题

首页

请教高手C语言的一个问题

main()
{int a[10],x,i,n;
printf("Enter n(n<10):");scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",a+i);
.....
这是程序的一段,里面的第四句中的a+i我不懂,请指教。不胜感激!

提交回答
好评回答
  • 2019-04-23 23:56:50
    正确的程序如下:
    main()
    {
    int a[10],x,i,n;  /*声明整型数组a,整型变量x,i,n*/
    printf("Enter n(n<10):");/*提示信息,输入一个小于10的数*/
    scanf("%d",&n); /*输入n值*/
    for(i=1;i<=n;i++) /*for循环,从1到n次*/
      scanf("%d",a+i); /*a是数组名,表示数组的首地址。a+i 表示数组指针从下标1开始,依次指向下一元素的地址,实际上就是为数组的每个元素赋值,但是a[0]元素未赋值*/
    for(i=1;i<=n;i++)  /*循环与上面相同的次数*/
    printf("%d\t",a[i]);/*输出a的每个元素值*/
    getch(); /*按任意键继续*/
    }
    

    森***

    2019-04-23 23:56:50

其他答案

    2019-04-24 00:41:10
  • a指的是首地址,i就是表示偏移量
    比如i=1时
    a+i就表示a[1]
    i=9时
    a+i表示a[9]
    

    牵***

    2019-04-24 00:41:10

  • 2019-04-24 00:33:59
  • for(i=1;i<=n;i++)scanf("%d",&a[i]);老兄我不知道你能不能看懂这个程序.a 代表的数组的首地址,a+i代表第i+1个数组元素的地址,也即&a[i] 不知道你指针学了没?若学了,可见你掌握的还不够牢固.

    B***

    2019-04-24 00:33:59

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 176-195
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):