请教高手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我不懂,请指教。不胜感激!
正确的程序如下: 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(); /*按任意键继续*/ }
a指的是首地址,i就是表示偏移量 比如i=1时 a+i就表示a[1] i=9时 a+i表示a[9]
for(i=1;i<=n;i++)scanf("%d",&a[i]);老兄我不知道你能不能看懂这个程序.a 代表的数组的首地址,a+i代表第i+1个数组元素的地址,也即&a[i] 不知道你指针学了没?若学了,可见你掌握的还不够牢固.
答:你用的是谭浩强编著的《C程序设计》吧?从我学C语言的经验看,前面的1--6章都是训练思维能力的,算不上重点,但却是基础,没有一个好的思维能力还怎么编程?第7章数...详情>>