c语言基础问题?

C\u8bed\u8a00\u57fa\u7840\u9898

**a=10\uff0cx=18.18**
\u7528scanf\u51fd\u6570\u4ece\u952e\u76d8\u83b7\u53d6\u6570\u636e\u65f6\uff0c\u952e\u76d8\u8f93\u5165\u7684\u5185\u5bb9\u53ea\u66ff\u6362\u5f15\u53f7\u5185%d %f \u7b49\u7b49\u5176\u4ed6\u7684\u90fd\u4e0d\u52a8\uff0c\u5f53\u7136\n\u662f\u4e0d\u7528\u8f93\u5165\u7684\uff0c\u5b83\u53ea\u662f\u8d77\u6362\u884c\u7684\u4f5c\u7528\u3002\u8981\u6ce8\u610f\u7a7a\u683c\u6570\u54e6\uff0c\u7a7a\u683c\u4e5f\u662f\u4e0d\u80fd\u51fa\u9519\u7684\uff0c


\u4eb2\u6d4b

%2d\u8bfb2\u4f4d %*2d \u7a7a\u8bfb(\u4e0d\u8ba1) %ld\u8bfb\u7ed9y\u4e00\u4e2a\u957f\u6574\u5f62
\u6700\u540e\u7ed3\u679c\u662fx=12,y=567
\u6240\u4ee5x+y=579

字符串的长度与字符串在内存中所占的空间是不一样的。
C语言规定,字符串在内存中存储时,以'\0'作为结束标志。字符串的长度不包括'\0',所以字符串A的长度是14。15是该字符串在内存中所占的字节数,也就是说,必须是15个字节才能存储这个字符串。
补充一点:你用sizeof()测试A,结果是15(sizeof测的是内存空间大小);用strlen()测试A结果是14(strlen测的是字符串的长度).

哦,字符串长度应该是14,只是其所占用的内存空间为15.字符串长度是指字符串本身(包涵当中的空格或是其它符号)的长度,这是我的理解。我在网上找了下,这是别人的说法:

C字符串长度定义规范(转载自金庆的专栏)
因为总是见到C字符串长度相关的错误, 所有定个规范出来, 有利于减少错误.
关键在于C字符串有个结尾\0, 处理时需要注意.
定义字符串长度有两种方式, 一种是用字符串的大小, 一种是字符串的长度.
字符串的大小即内存空间的大小, 而串长度加1才是所需空间.

如果你用SIZEOF求长度,那么得到值是15,如果你是strlen求长度,得到值是14,sizeof 计算的是占用内存的空间要计算'\0',strlen求的字符串的长度,忽略不记'\0'

你用什么函数或者功能检测它的长度的?
我用的是Dev C++中的C编译器. sizeof 是15,而strlen是14

原因是sizeof 计算所有字符个数,而strlen已经假定'\0'是字符串以外的结束符号.
#include <stdio.h>
#include <stdlib.h>
main()
{
char A[]={"I am a student"};
printf("%d,%d",sizeof(A),strlen(A));
system("pause");
}

你这开始定义数组时就有错误!定义时[]中一定要写个数字,不然会出错!你那问题是14个普通字符再加一个转意字符\0工15个字节!数组中不能放满就以\0来填充,这点要记住!

  • c璇█鍩虹闂
    绛旓細涓銆丆璇█瑙勫畾鎬绘槸浠巑ain()寮濮嬫墽琛岀殑锛堣繖涓嚱鏁颁篃鍙滀富鍑芥暟鈥濓級銆傚洜姝わ紝浣犲彂鏉ョ殑棰樼洰涓殑锛1銆6銆8锛夊彊杩伴兘鏄敊璇殑锛岄兘搴旇閫夋嫨F銆備簩銆佺2棰樹腑锛孋璇█瀵瑰叾鏁版嵁鍦ㄥ唴瀛樹腑鎵鍗犵敤鐨勫疄闄呭瓧鑺傛暟锛岄殢鐫绋嬪簭涓0鏄庣殑鏁版嵁绫诲瀷浠ュ強鏁版嵁鐨勫灏戣屽彉鍖栵紝C璇█鏈韩骞舵病鏈夋槑纭瀹氥傝繖棰樺簲璇ラ塅銆備笁銆佺3棰...
  • C璇█鍩虹闂
    绛旓細1銆佷笉鐭ラ亾浣犺鐨勬簮鏂囦欢鏄粈涔堜笢瑗匡紝浣嗘簮绋嬪簭鎴戠煡閬擄紝婧愮▼搴忓氨鏄敤璁$畻鏈鸿瑷鍐欏嚭鏉ョ殑锛屽彲浠ョ敤瀵瑰簲缂栬瘧鍣ㄧ紪璇戞垨瑙i噴鍚庡氨鑳界敓鎴愪竴涓彲浠ョ敱璁$畻鏈鸿瘑鍒繍琛岀殑瀛楃鏂囦欢銆傝繖閲岀殑璁$畻鏈鸿瑷鍙互鏄痸b,c/c++,java,姹囩紪绛夌瓑銆傚叾涓璫/c++,姹囩紪鏄紪璇戠被鐨,vb,java鏄В閲婄殑 2銆c璇█閲岀殑涓诲嚱鏁版槸绋嬪簭鐨勫叆鍙o紝杩欎釜鍑...
  • c璇█鏈夊摢浜鍩虹鐭ヨ瘑?
    绛旓細C璇█鏄竴闂ㄩ潰鍚戣繃绋嬬殑銆佹娊璞″寲鐨勯氱敤绋嬪簭璁捐璇█锛屽箍娉涘簲鐢ㄤ簬搴曞眰寮鍙銆侰璇█鑳戒互绠鏄撶殑鏂瑰紡缂栬瘧銆佸鐞嗕綆绾у瓨鍌ㄥ櫒銆侰璇█鏄粎浜х敓灏戦噺鐨勬満鍣ㄨ瑷浠ュ強涓嶉渶瑕佷换浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑楂樻晥鐜囩▼搴忚璁¤瑷銆傚敖绠璇█鎻愪緵浜嗚澶氫綆绾у鐞嗙殑鍔熻兘锛屼絾浠嶇劧淇濇寔鐫璺ㄥ钩鍙扮殑鐗规э紝浠ヤ竴涓爣鍑嗚鏍煎啓鍑虹殑C璇█绋嬪簭鍙...
  • c璇█鍩虹闂?
    绛旓細浠g爜瀛樺湪涓涓昏緫閿欒锛宻um1=sum1+1/i;鍜宻um2=sum2+1/j杩欎袱琛屼唬鐮佷腑锛岀敱浜 i 鍜 j 鍧囦负鏁存暟绫诲瀷锛屽畠浠殑闄ゆ硶杩愮畻浼氬緱鍒颁竴涓暣鏁扮粨鏋滐紝鑰屼笉鏄诞鐐规暟缁撴灉銆傚彲浠ュ皢 1 鏀逛负 1.0锛屽皢鏁存暟闄ゆ硶鍙樹负娴偣鏁伴櫎娉
  • 涓涓C璇█鐨鍩虹闂
    绛旓細瑙g瓟锛1銆 c璇█鏄互鍒嗗彿鍋氫负璇彞鐨勭粨鏉銆俧or寰幆鏄竴涓鍙ユ墍浠ュ氨蹇呴』寰楁湁鍒嗗彿锛屼笉鐒剁紪璇戞棤娉曢氳繃锛屽嚭鐜拌娉曢敊璇俧or璇彞鏄惊鐜潯浠跺拰寰幆浣撶殑缁勫悎銆備綘杩欓噷缁欏嚭浜嗗惊鐜潯浠讹紝浣嗘槸娌℃湁寰幆浣撱傚惊鐜綋涓虹┖銆傜劧鍚庝互鍒嗗彿琛ㄧず杩欎釜for璇彞鐨勭粨鏉熴傚鏋滀綘鐨勫惊鐜綋鏈夊涓鍙ュ彲浠ョ敤{}鏉ユ嫭璧锋潵銆2銆乮锛嬶紜锛屽瓨鍦...
  • C璇█鐨鍩虹闂
    绛旓細=0鏁堟灉鏄竴鏍风殑 鍚岀悊while(n!=0)绛夊悓浜巜hile(n)锛((c=getchar())!=10)鐨勬剰鎬濇槸,琛ㄨ揪寮(c=getchar())!=10,鍏堝垎鏋恈=getchar(),杩欎釜鏄緭鍏ヤ竴涓瓧绗︼紝鐒跺悗鎶婂瓧绗﹁祴鍊肩粰c,瀛楃瀵瑰簲鐨凙SCII鐮佹槸涓暣鏁帮紝濡傛灉杩欎釜瀵瑰簲鐨凙SCII鐮!=10鐨勮瘽,閭d箞鏁翠釜琛ㄨ揪寮忓间负true,鍙嶄箣涓哄亣 ...
  • C璇█鍩虹闂
    绛旓細5,6.杩斿洖鍊煎氨鏄嚱鏁伴渶瑕佽繑鍥炵粰璋冪敤浠栫殑璇彞鐨勫硷紝姣斿int a = func(c)锛岃〃鏄庡嚱鏁癴unc()鐨勮繑鍥炲艰浠樼粰a,void琛ㄦ槑姝ゅ嚱鏁版病鏈夎繑鍥炲笺7.琛ㄧず浣犱娇鐢╯canf鏈夐敊锛屾牴鎹綘涓婇潰鐨勭3涓闂锛屾垜浼拌浣犲湪鍙橀噺x鍜寉鍓嶉潰灏戜簡&.8.浣犱笉缁欏嚭鍑洪敊淇℃伅鏃犳硶鍒ゆ柇 9.鏈夋柇鐐硅皟璇曪紝浣犲彲浠ヤ笂缃戞煡鏌ワ紝鍏蜂綋鐨勭紪绋嬪伐鍏...
  • c璇█鍩虹闂?
    绛旓細鍙橀噺瑕佸畾涔変负鍏ㄥ眬鍙橀噺锛屽氨鏄鍦ㄥ嚱鏁颁綋澶栭潰瀹氫箟鍙橀噺锛屽悓鏃朵笉鑳藉姞鍏抽敭瀛梥tatic闈欐佺殑锛岄潤鎬佸叏灞鍙橀噺鍙兘鍦ㄦ湰鏂囦欢鍐呬娇鐢紝浣犲厛鍦ㄤ竴涓枃浠朵腑瀹氫箟鍙橀噺锛屾瘮濡傦細include<stdio.h> int a;int main(){ } 鍦ㄥ彟澶栫殑鏂囦欢涓紝濡傛灉浣犳兂瑕佷娇鐢ㄥ彉閲廰锛岄偅涔堥鍏堣extren int a;extren鍏抽敭瀛楃殑鎰忔濇槸鍒板叾浠栨枃浠朵腑瀵绘壘...
  • 鍏充簬C璇█鐨勫嚑涓緢鍩虹闂
    绛旓細1.\t鏄埗琛ㄧ涓鑸┖寮鐨勮窛绂绘瘮杈冨ぇ鈥溾濆拰 绌虹櫧閿彧绌哄紑鈥溾2.return鐨勪綔鐢ㄦ槸 閿欒鐨勬椂鍊欒緭鍑洪潪0 姝g‘鐨勬椂鍊欒緭鍑0 3.绗﹀彿鎵╁睍鏈変粈涔堢敤 浣犱笉鑳藉湪涓涓寘鍚16浣嶆暟鐨勮〃杈惧紡涓殢鎰忓湴浣跨敤8浣嶆湁绗﹀彿鏁帮紝杞崲鏄繀闇鐨勩傝繖绉嶈浆鎹紝浠ュ強鍏堕嗘搷浣滐紙灏16浣嶆暟杞崲涓8浣嶏級灏辨槸绗﹀彿鎵╁睍锛坰ign extension锛...
  • c璇█鍩虹闂姹傝В銆
    绛旓細b=1 :璁゛=0,b=1,缁撴灉false涓巘rue 锛=false a = 0 || b=1 缁撴灉false鎴杢rue 锛=true While锛坅锛夎〃绀哄綋a涓嶇瓑浜0寰幆锛屾暟鎹被鍨嬮殣寮忚浆鎹㈠搴斿 0琛ㄧずfalse,鍏朵粬涓簍rue銆俉hile锛堬紒a锛塧绛変簬0 寰幆銆傚悓涓 锛佽〃绀簄ot 鍚︺俕鎸変綅寮傛垨杩愮畻绗︺&锛氭寜浣嶄笌杩愮畻绗 &&锛氶昏緫涓庤繍绠 鍏蜂綋杩愮畻绗﹀彲浠ュ弬鐓...
  • 扩展阅读:c++语言入门自学 ... c语言基础练习100题 ... c语言零基础自学 ... c语言培训班大约多少钱 ... c语言基础知识大全集 ... c语言基础知识100题 ... c十十编程要学多久 ... c语言面试题 ... c语言基础知识入门编程 ...

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