scanf使用注意事项
#include<stdio.h> int main(){ int a[100]; int n, i; scanf("%d", &n);//输入个数 for (i = 0; i<n; i++)scanf("%d", &a[i]);//这里也可以用 scanf("%d",a+i); for (i = n - 1; i>0; i--)printf("%d ", a[i]); printf("%d\n", a[i]); /* int a[2][3] = { { 1, 2, 3 }, { 4, 5, 6 }, }; int *edge; edge = a; while (*edge != NULL){ edge = &((*edge)->next); printf("%c", edge); } */ }
说明:
scanf传得必须是指针,也就是地址。
比如int a;就需要&a;但是如果是数组,数组本身表示的是数组首元素的地址。也就是int a[10]里a就表示a[0]的地址;那a[3]的地址呢?可以这样,&a[3];这就是加&的数组,如果不加呢,可以这样(a+3)就可以了,a是a[0]的地址,那么a+3就是a[3]的地址。
所以数组的scanf赋值是要加&的。
但是printf里因为输出的不是地址而是值所以不用加&。
浙公网安备 33010602011771号