c语言函数修改数组,修改C中函数内的数组

// test.txt

50

13

124

void hi ( int *b, FILE *pfile ) {

rewind ( pfile );

int i;

for( i = 0 ; i < 3 ; i++ ) {

fscanf ( pfile, "%d", &b[i] );

}

}

int main ( void ) {

FILE *fp = fopen ( "test.txt", "r" );

int a[10]; //putting extra size for test.

hi ( &a[0], fp );

printf("%d,%d,%d\n", a[0], a[1], a[2]);

fclose ( fp );

return 0;

}

我正在尝试理解涉及阵列的指针.当我测试上面的代码时,我注意到通过将hi(& a [0],fp)等不同的索引值设置为hi(& a [1],fp),我得到了不同的结果.

// [hi(& a [0],fp)] // [hi(& a [1],fp)]的结果

50,13,124垃圾#,50,13.

我对结果感到很困惑,因为在’hi’函数中我从i = 0指定数组的开始,这意味着它存储从[0]开始的值.但似乎将1而不是0放在一边是以某种方式将值放在一边.为什么会这样?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值