请问printf(“%d,%d,%d”,a,b,c); 与 printf(“%d,%d,%d”,(a,b,c),b,c);的区别
从右向左运算;a++&&b++||c++
后置++,先不管他,用原来abc的值计算逻辑值,
a=0,,0在前,&&
逻辑与=0,就不用执行b++了,
||
c=0,
逻辑或
=0,所以第四个数=0,注意此时
a,c都自增1,
结果:
1,0,1,0
printf(“%d,%d,%d”,a,b,c);这个你应该理解的吧
printf(“%d,%d,%d”,(a,b,c),b,c);
这里的话主要是第一个表达式
(a,b,c)这个表达式的值是取括号里面的最后一个逗号后面的值
绛旓細鏍规嵁浣犵殑闂锛屼笅浜嗕竴涓▼搴忓涓嬶紝浣犵煡閬撶▼搴忚繍琛岀殑缁撴灉鏄庢牱鐨勫悧锛焟ain(){ int a=1;printf("%d,%d,%d\n",a++,a++,a++);printf("%d\n",a);} 杩愯鍚庣殑缁撴灉濡備笅锛屼綘鑳芥槑鐧藉悧锛3,2,1 4 杩欎釜璇彞鏄槑鐧戒簡浼氭槑鐧紺璇█閲岄潰涓や釜闅炬噦鐨勪笢瑗匡細printf("%d,%d,%d\n",a++,a++,a++);棣...
绛旓細d琛ㄧず涓涓崄杩涘埗鏁帮紝鐢ㄥ悗闈㈢殑鍙橀噺鏇挎崲 d%d灏变細鍒嗗埆琚玿鍜寉杩欎袱涓彉閲忔浛鎹俓n鏄崲琛
绛旓細c璇█涓, %d\n 鏄痯rintf()鍑芥暟鐨勬牸寮忔帶鍒锛%d鏄痯rintf()鍑芥暟鐨勬牸寮忓0鏄庯紝琛ㄧず缁撴灉鍙兘杈撳嚭鍗佽繘鍒舵暣鏁帮紝\n鏄櫘閫氬瓧绗︿腑鐨勬崲琛岀锛岃〃绀鸿緭鍑哄悗鎺у埗绉诲埌涓嬩竴琛岀殑寮澶淬俢璇█涓璸rintf()鍑芥暟鐨勪竴鑸牸寮printf("<鏍煎紡鍖栧瓧绗︿覆>", <鍙傞噺琛>)銆傛牸寮忓寲瀛楃涓茬敱鏍煎紡鎺у埗銆佸拰杈撳嚭琛ㄥ垪涓ら儴鍒嗙粍鎴愶紝鍏朵腑鏍煎紡鎺у埗...
绛旓細NULL == 0 EOF == -1 NULL涓鑸兘鏄〃绀轰竴涓瓧绗︿覆鐨勭粨鏉熸垨鑰呯┖鎸囬拡 EOF涓鑸槸鎸囨枃浠剁殑缁撳熬
绛旓細"\n"锛欳璇█涓殑鎹㈣绗︽槸"\n"锛屽氨鏄緭鍏ュ畬涓琛屽唴瀹瑰悗锛屽厜鏍囪浆鍒颁笅涓琛岀殑璧峰浣嶇疆 銆備笉鍔犫淺n鈥濆杈撳嚭鐨勫瓧绗︼紝瀛楃涓诧紝鏁板瓧绛夋病鏈夊奖鍝嶏紝浣嗘槸杈撳嚭鐭╅樀鐨勬椂鍊欒鍔犫淺n鈥濄備緥濡傦細printf("first line\n");printf("second line\n");鎹㈣绗︼紙line break锛夋槸鎸囦竴绉嶈绠楁満璇█琛ㄨ揪鏂瑰紡锛屽畠鐨勪綔鐢ㄦ槸璁...
绛旓細涓銆佹牸寮忓寲杈撳嚭鐨勪笉鍚岋細printf("a=%d,b=%d",a,b)鎵撳嵃鍑烘潵鐨勬槸a="a鐨勫"锛宐="b鐨勫"锛屽鏋渁鍜宐鐨勫煎垎鍒负1銆2锛屽垯鎵撳嵃鍒板睆骞曚笂鐨勭粨鏋滄槸a=1,b=2銆printf("%d,%d\n",a,b)鎵撳嵃鍑烘潵鐨勫彧鏈塧鍜宐鐨勫硷紝濡傛灉a鍜宐鍒嗗埆涓1銆2锛屽垯鎵撳嵃鍒板睆骞曚笂鐨勭粨鏋滄槸1锛2銆傝繖绉嶇粨鏋滅殑鍖哄埆鏄牸寮忓寲杈撳嚭鐨...
绛旓細鍦–璇█涓printf("a=%%d,b=%%d\n",a,b);閲岀殑%%d鏄▼搴忚緭鍑虹粨鏋溿俤鏄〃绀哄悗闈㈢殑鍙橀噺b鐨勫肩敤鏁存暟褰㈠紡鏄剧ず銆傚悗闈㈢殑涓や釜%锛岃〃绀烘樉绀轰竴涓%銆傚鏋渂鐨勫兼槸20锛屽垯杈撳嚭鏄20%鈥濄傚鏋滆杈撳嚭鏁存暟a,b鐨勫硷紝搴旀敼涓簆rintf("a=%d,b=%d\n",a,b)銆
绛旓細2銆%d琛ㄧず鏁版嵁鎸夊崄杩涘埗鏈夌鍙锋暣鍨嬫暟杈撳叆鎴栬緭鍑猴紝濡傛灉缂栬瘧鍣32浣嶏紝鍙互杈撳嚭8瀛楄妭銆傜ず渚嬶細printf("%5d\n",1000);//榛樿鍙冲榻,宸﹁竟琛ョ┖鏍 printf("%-5d\n",1000);//宸﹀榻,鍙宠竟琛ョ┖鏍 printf("%+d%+d\n",1000,-1000);//杈撳嚭姝h礋鍙 printf("%d%d\n",1000,-1000);//姝e彿鐢ㄧ┖鏍兼浛浠o紝...
绛旓細鍚庣紑++琛ㄧず鎵ц瀹岃琛岃鍙ュ悗鍐嶈嚜鍔狅紝鍓嶇紑++琛ㄧず绔嬪嵆鎵ц鑷姞锛岀劧鍚庢墽琛岃琛岃鍙ャ傛墍浠ヨ緭鍑6鍜8.
绛旓細(p++); 鏄緭鍑簆鐨勫硷紝鐒跺悗p鎸囬拡鍔1 (p+1); 鏄緭鍑簆+1鐨勫硷紝p鎸囬拡涓嶅彉 涓涓槸p鐨勫硷紝涓涓槸p+1鐨勫硷紝褰撶劧杈撳嚭鐨勭粨鏋滀笉鍚屽挴 printf("%d %d",*p,*(++p));鐨勭粨鏋滆窡 *(p+1)鐨勭粨鏋滅浉鍚 涓嶈繃*(++p)杈撳嚭鍚庯紝p鎸囬拡鍔1浜嗭紝鑰*(p+1)杈撳嚭鍚庯紝p鎸囬拡娌℃湁鍙樺寲 ...