最近正在补C语言基础知识,发现好多好多基础不牢固的地方,做了一点点整理。
原理:
scanf传入的必须是指针,也就是地址。比如int a,就要写成&a。
但是如果是数组,数组符号表示的就是数组的首地址(更准确的说,数组本身表示的是数组首元素的地址)e.g. int a[10];a就表示a[0]的地址;a+3表示a[3]的地址;
暂时总结了以下三种情况:
1.对于数组,有两种使用方法:
scanf("%d",&a[i]);
scanf("%d",a+i);
2.canf()读取基本变量类型的值,在变量名前加上&
scanf("%d",&a);
3.如果scanf()是把字符串读入字符数组中,不要使用&(因为字符串变量名在 scanf 语句里表示指针 (地址))
scanf("%s",aaaaaaaa);