关于C语言中scanf函数的小结

    xiaoxiao2021-12-15  41

       1.scanf函数中的格式控制应该是变量名的地址,而不是变量名,例如a和b为整形变量,如果写成scanf(“%d%d”,a,b); 就会出错的,应该将这个,a,b改成&a,&b;(表示地址)。

       2.我们都知道C语言中的字符串是存放到字符数组中的,如果我们定义了一个字符数组,如char a[20]我们想把字符串输入到这个字符数组通常有两种方式,第一种.逐个字符输入,采用for循环的形式。第二种,直接输入字符串的形式,用格式控制符%s第一种我们这样输入,如输入:

            for(i=0;i<=19;i++)

            { 

                   scanf(“%c”,&a[i]); 

            }

           第二种我们用这种方式输入 scanf(“%s”,a); 注意第二种这种形式。

    为什么要我们没有加&?C语言中把这个数组名当做该数组的起始地址。但是这种数组仅限于字符数组,不要企图,利用数值型数组的名来整体输入,一个数值型的个数值型的数组,这就是大错误了。比如这样写是不正确的:

            int a[10];

            scanf(“%d”,a); 

      3.对于指针问题,大家需要注意一点, 指针就是地址,这是在任何条件下都成立的。看下面这个例子:

            char *p;

            char a[20];

            p=a;         for(i=0;i<20;i++,p++)

            {  

               scanf(“%c”,p);         }   这是一个采用指针变量输入数据的例子,这里的指针变量p在for循环之前就指向了这个数组a,也就是指向了数组的首元素,也就是是说指针变量p里存放的是,数组首元素的地址,所以在用这个scanf函数进行输出时,指针变量的前方就不用再加取地址符号了。

      

    转载请注明原文地址: https://ju.6miu.com/read-1000227.html

    最新回复(0)