编程语言c语言

请问什么时候要加上地址符号&啊?比如二维数组时scanf(“%lf”, &a[i][j]);再比如字符串事scanf("%s",a);字符常量scanf("%c",a)。一位数组呢?等等,哪些需要加哪些不需要加,有点晕。

一是要看调用函数对参数的要求,比如scanf如果输入整数要求给一个指向整数变量的指针,而int a;是整数变量,它不是指针,而是int型的,所以要取出这个变量的地址写到参数位置&a;如果是int a[10][10];那么a也不是指向整数变量的指针,假设输入a[i][j]这个变量,它的类型是int型的,也需要取它的地址,也就是在前面加&得到,这样最容易记忆,也可以写成a[i]+j这个就是指针了,因为a[i]是指向a[i][0]的指针;int a[10];这种情况,如果输入a[2]当然也要写&a[2]最直观,也可以写a+2,int *p,a[10];时还可以写p=a;参数为p+2;或者p=&a[2];参数直接写p。
记那么多没有必要,你只要记住:scanf输入要求提供的是个地址或者说指针,那我就将变量写出来,然后为取地址前面加个取地址的运算符&。其他的情况你见过就可以了,万一别人的程序写出来你也能认。
温馨提示:答案为网友推荐,仅供参考
相似回答