如何用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() 过度使用也没有关系(对初学者而言),好的习惯可以让学习之路更顺利一点。



  • 鐢ㄧ畝鍗曠殑c璇█缂栧啓鍥涘垯杩愮畻棰
    绛旓細num1 = rand()%10;num2 = rand()%10;printf("%d + %d=__?__\n",num1,num2);scanf("%d",&results);if(results == add(num1,num2)){ printf("鍥炵瓟姝g‘锛乗n");right++;} else { printf("鍥炵瓟閿欒锛乗n");wrong++;} printf("鏄惁缁х画锛焬/n\n");getchar();scanf("%c",&...
  • c璇█鐢╯witch缂栧啓涓涓绠鍗曠殑鍥涘垯杩愮畻绋嬪簭
    绛旓細include<stdio.h> int main(){double a,b,c;char op;scanf("%lf%c%lf",&a,&op,&b);switch(op){case '+': c=a+b; break;case '-': c=a-b; break;case '*': c=a*b; break;case '/': if(b) c=a/b;else {printf("闄ゆ暟涓嶈兘涓0!\n"); return 0;} default:{...
  • 鐢╟璇█鍋氫竴涓绠鍗曠殑璁$畻鍣ㄣ傝姹鑳藉仛鍥涘垯杩愮畻灏卞浜,瓒婄畝鍗曡秺濂姐傚垰瀛...
    绛旓細鐢╟璇█鍋氫竴涓绠鍗曠殑璁$畻鍣ㄣ傝姹鑳藉仛鍥涘垯杩愮畻灏卞浜,瓒婄畝鍗曡秺濂姐傚垰瀛︿簡鍗婂勾鐨凜璇█ 20  鎴戞潵绛 4涓洖绛 #鐑# 缃戞枃璐ㄩ噺鏄笉鏄笅闄嶄簡? liyapingliyap 2011-06-30 鐭ラ亾绛斾富 鍥炵瓟閲:1 閲囩撼鐜:0% 甯姪鐨勪汉:0 鎴戜篃鍘荤瓟棰樿闂釜浜洪〉 鍏虫敞 灞曞紑鍏ㄩ儴 #include <stdio.h> #include <...
  • 濡備綍鐢–璇█缂栧啓涓涓瀵规暟杩愮畻
    绛旓細鐢ㄥ簱鍑芥暟math.h 杩欓噷闈㈢殑log灏辨槸鏁板閲岄潰ln锛堝簳鏁颁负e鐨勯偅涓浼欙級鐨勬剰鎬濄傚涓嬩唬鐮佷緥瀛 include<stdio.h>#include<math.h>main(){double k;k=log(2.71828);printf(" %f ",k);k=log(8)/log(2);printf(" %f ",k);}绗竴k鏄痩n(e)鐨勬剰鎬濓紝e绾︿负2.71828锛屽睆骞曚笂鎵撳嵃鍑哄间负0.999999,...
  • 鎬庢牱鐢–璇█缂栦竴涓涓ゆ暟鐩稿姞鐨勭▼搴?
    绛旓細鎮鍙互浣跨敤C璇█涓殑鍔犳硶杩愮畻绗︼紙+锛夋潵缂栧啓涓涓涓ゆ暟鐩稿姞鐨勭▼搴忋備互涓嬫槸涓涓畝鍗曠殑绀轰緥绋嬪簭锛氬湪涓婇潰鐨勭▼搴忎腑锛屾垜浠鍏堝畾涔変簡涓変釜鍙橀噺锛歯um1銆乶um2鍜宻um銆俷um1鍜宯um2鐢ㄤ簬瀛樺偍鐢ㄦ埛杈撳叆鐨勪袱涓暟瀛楋紝鑰宻um鐢ㄤ簬瀛樺偍杩欎袱涓暟瀛楃殑鍜屻傛帴涓嬫潵锛屾垜浠娇鐢╬rintf鍑芥暟鎻愮ず鐢ㄦ埛杈撳叆涓や釜鏁板瓧锛屽苟浣跨敤scanf鍑芥暟灏嗙敤鎴...
  • 鐢╟璇█缂栧啓涓涓璁$畻鍣ㄣ
    绛旓細include<stdio.h> int main(){ int a,b,c,max;printf("璇疯緭鍏ヤ笁涓暟锛歕n");scanf("%d%d%d",&a,&b,&c);if(a>b)max=a;if(c>max)max = c;printf("涓変釜鏁颁腑鏈澶х殑鏁颁负锛%d",max);return 0;}
  • 濡備綍鐢╟璇█缂栦竴涓澶嶆暟鐨勫洓鍒欒繍绠
    绛旓細瑕佹眰瀹炵幇涓嬪垪鍏鍩烘湰杩愮畻1)鐢辫緭鍏ョ殑瀹為儴鍜岃櫄閮ㄧ敓鎴涓涓澶嶆暟2)涓や釜澶嶆暟姹傚拰;3)涓や釜澶嶆暟姹傚樊;4)涓や釜澶嶆暟姹傜Н锛5)浠庡凡鐭ュ鏁颁腑鍒嗙鍑哄疄閮;6)浠庡凡鐭ュ鏁颁腑鍒嗙鍑鸿櫄閮ㄣ傝繍绠楃粨鏋滀互鐩稿簲鐨勫鏁版垨瀹炴暟鐨勮〃绀哄舰寮忔樉绀(鏈濂界敤缁撴瀯浣撶殑鏂规硶)瑕佹槸鑳鐢╟++鍜宻tl锛屽彲浠ヨ繖鏍鍐#include <complex>#include <iostrea...
  • 涓涓狢璇█鐨勯棶棰,搴旇濡備綍杈撳叆,涓嬮潰杩欎釜绋嬪簭姝g‘杩愯寰楀埌a=10,b='A...
    绛旓細杈撳叆10A-1.23鍗冲彲锛屽洜涓轰綘鐨剆canf涓病鏈夌┖鏍间箣绫荤殑鎵浠ヨ緭鍏ユ椂涔熶笉鐢
  • 濡備綍鐢╟璇█缂栧啓涓涓绠鏄撹绠楀櫒??
    绛旓細include<stdio.h> int main(){ int i;for(i=0;i<26;i++)printf("%c ",i+'A')锛沠or(i=0;i<26;i++)printf("%c ",i+'a');return 0;}
  • 鐢–璇█缂栧啓涓涓绋嬪簭:
    绛旓細//淇濊瘉绗1涓绠楁暟澶т簬绗2涓畻鏁帮紝濡備笉闇瑕侊紝鍒欐妸杩欎釜鍒ゆ柇鍒犻櫎鍗冲彲 if( v1<v2 ){ t = v1;v1 = v2;v2 = t;} //濡傛灉杩愮畻绗︿负闄ゆ硶锛屼笖v1涓嶈兘琚玽2鏁撮櫎鍒欓噸鏂扮敓鎴愰鐩 if( op=='/' && v1%v2!=0 )continue;//璁$畻姝g‘鐨勭粨鏋 switch(op){ case '+': a=(float)v1+(float)v2; ...
  • 扩展阅读:c++编程 ... 学c++需要什么基础知识 ... c++和python先学哪个 ... 一个简单的c++程序 ... c++简单程序实例 ... c++ ... c++必背入门代码 ... c++必备基础知识 ... c#入门基础知识 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网