如何用c语言编写一个能够正确运行的程序?

如题所述

对于这一句:

“  scanf (“%s”,&name)——(如果name是数组名)从键盘接收一个字符串,存储到以name为首地址的数组中(注意这里虽意义与scanf (“%s”,name)不同,但效果与scanf (“%s”,name)一样);   ”

我表示深深怀疑,虽然没有直接测试。很可能有错,希望自己去写代码实验一下。

====== 以下为我的 update =======

以前水平比较菜,scanf 用得也不多;看到现在还有人看这类问题,我再补充一下 

关键点:scanf “必须”接受指针;char arr[9] = {'\0'}; 这句代码,“arr”变量直接使用,它就是一个指针

&arr 也是指针,但是 &arr 是指向指针的指针。

所以针对我的回答,这里做个确定的补充, 

scanf("%s", &name);

 scanf("%s", name);

两者都可以编译通过,因为 scanf 的第二个参数只要是指针就可以,

但是,敲黑板!千万不要使用 scanf("%s", &name) 这种方式,除!非!你!知! 道!你!在!干!什!么!,因为这会造成 C语言上经常会发生的指针越位问题。 

---------

最后,对于C语言指针这个对初学者很难懂的内容,建议翻阅 “征服C指针”一书。大概看懂3,4章,你对C语言就算真正入门了。

By the way,初学者在代码里,如果有重复对一个数组赋值使用的情况,建议不管三七二十一使用 memset() 过度使用也没有关系(对初学者而言),好的习惯可以让学习之路更顺利一点。

温馨提示:答案为网友推荐,仅供参考
相似回答