C语言中普通数组在定义的时候不给出数组的具体长度,那么计算机是在运行期间为其分配长度的吗? c语言中定义一个数组可以不写数组的长度吗?

\u5728C\u8bed\u8a00\u4e2d\uff0c\u5982\u679c\u7ed9\u6570\u7ec4\u4e2d\u7684\u5168\u90e8\u5143\u7d20\u8d4b\u503c\uff0c\u5219\u5728\u5b9a\u4e49\u6570\u7ec4\u65f6\uff0c\u53ef\u4ee5\u4e0d\u7ed9\u51fa\u6570\u7ec4\u957f\u5ea6\u3002 \u5bf9\u4e0d\u5bf9\uff1f

\u8fd9\u4e48\u8bf4\u628a.\u5b57\u7b26\u6570\u7ec4\u53ea\u80fd\u521d\u59cb\u82b1\u65f6\u5168\u90e8\u8d4b\u76f4,\u5728\u7a0b\u5e8f\u4e2d\u53ea\u80fd\u7528\u4e0b\u6807\u6765\u9010\u4e2a\u8d4b\u76f4,\u5728\u521d\u59cb\u5316\u65f6\u5982\u679c\u5168\u90e8\u6307\u5b9a\u4e86\u521d\u76f4\u5c31\u53ef\u4ee5\u7701\u7565\u6570\u7ec4\u957f\u5ea6

\u4e0d\u53ef\u4ee5\uff0c\u5982\u679c\u4e0d\u80fd\u786e\u5b9a\u957f\u5ea6\uff0c\u8bf7\u7528STL\u5e93\u91cc\u7684LIST,MAP,SET\u7b49\u6570\u636e\u7c7b
\u6216\u8005\u5f00\u7684\u6570\u7ec4\u5f00\u7684\u5927\u4e00\u4e9b\uff0c\u4fdd\u8bc1\u4f60\u4e0d\u4f1a\u8d8a\u754c\uff0c\u591a\u4f59\u7684\u90e8\u5206\u4e0d\u9002\u7528\u5c31\u597d

\u5728\u5b9a\u4e49\u7684\u6570\u7ec4\u7684\u65f6\u5019\uff0c\u53ef\u4ee5\u901a\u8fc7\u53d8\u91cf\u5b9a\u4e49\u957f\u5ea6\u5982\uff1a
scanf("%d", arrayLen);
int[] data = new int[arrayLen];

变长数组:数组长度为变量,在编译期间不能确定数组长度,要等到程序运行后,变量赋值后(数组定义语句不要写在变量赋值之前!),才能给数组分配内存。

变长数组本质还是静态数组(定义前大小可变,但定义后不能改变大小)。

要定义动态数组需要用malloc函数来申请内存。



C语言中普通数组在定义的时候不给出数组的具体长度,那么计算机是在运行期间是不能为其分配长度的,除非声明这个普通数组的时候了,同时初始化他所有的元素。例如,char s[] ={'a','b','c'};
或char s1[]="good";

第一种方法由于定义时初始化只有一个元素,编译器默认数组长度就是初始化的长度,所以数组大小只有1


第二种方法,将数组大小定义为了变量n的大小,此种叫做可变长数组,需要编译器支持C99标准才能正常通过编译



  • 2銆 c璇█棰樼洰:鏁扮粍鍦鈥瀹氫箟鈥鏃鍜屸滃紩鐢ㄢ濇椂鎵甯鐨涓嬫爣鏈変綍鍖哄埆
    绛旓細鍏朵粬鍥炵瓟 瀹氫箟鏃鎸囩殑鏄厓绱犵殑涓暟n,鑰屽紩鐢鐨勬椂鍊鏄崟涓厓绱,0~(n-1).浣跨敤getline() alazyrabbit | 鍙戝竷浜2008-04-27 涓炬姤| 璇勮 0 0 涓烘偍鎺ㄨ崘: c璇█鏁扮粍瀹氫箟鍜岃祴鍊 c璇█涓暟缁鎬庝箞瀹氫箟 c璇█浜岀淮鏁扮粍瀹氫箟 c璇█鏄粈涔 c璇█瀹氫箟瀛楃涓叉暟缁 c璇█瀹氫箟鏁扮粍闀垮害 c璇█鏁扮粍杈撳叆 c璇█绋嬪簭...
  • c璇█涓浠涔鏃跺欐暟缁涓嶅繀瀹氫箟澶у皬,鐩存帴鐢╗]琛ㄧず銆 楹荤儲鍛婅瘔涓,璋㈣阿...
    绛旓細C/C++涓娇鐢ㄦ暟鎹兘蹇呴』瑕鍦ㄥ畾涔夌殑鏃跺纭畾澶у皬銆傜洿鎺ョ敤[]鐨勬儏鍐垫槸鍦ㄥ0鏄鏁扮粍鏃灏卞垵濮嬪寲璇ユ暟缁勶紝渚嬪瓙濡備笅锛歩nt a[] = {1,2,3,4,5,6,7,8};杩欑鐩存帴浣跨敤[]鏄洜涓哄湪鐩存帴澹版槑璧嬪垵鍊兼椂锛屽垵濮嬪肩‘瀹氫簡鏁版嵁鐨勫ぇ灏忥紝濡備笂渚嬫暟缁勫ぇ灏忎负8.澶栬繕鏈変竴绉嶆槸灏嗘暟缁勪綔涓哄弬鏁颁紶缁欏嚱鏁帮紝瀹為檯閭f槸浼犵殑鎸囬拡锛屽涓...
  • c璇█,鏁扮粍瀹氫箟鏃,鍙互杩欐牱鍐檃rr[ ] ,涓嶅啓涓嬫爣,鍙互涔?涓轰粈涔?_鐧惧害鐭...
    绛旓細鍙湁鍦ㄧ洿鎺ュ垵濮嬪寲鐨勬椂鍊锛屽彲浠ャ傛瘮濡 arr[] = {1, 2, 3};娌℃湁鍒濆鍖栨椂灏变笉鍙互銆傚ぇ姒傚氨鏄鐭ラ亾鏁扮粍鐨澶у皬锛屽鏋滅洿鎺ュ氨鍒濆鍖栦簡锛岄偅涔熺瓑浜庣煡閬撴暟缁勫ぇ灏忋傛洿鏍规湰鐨勫師鍥犲氨鏄紝璇█鍜岀紪璇戝櫒鐨勭紪鍐欒呰繖涔堣瀹氾紝骞跺湪閲岄潰杩欎箞瀹炵幇鐨勩備粬浠枩娆㈣繖绉嶆柟寮忋
  • c璇█瀹氫箟鏁扮粍鏃'""绗﹀彿鍜寋}绗﹀彿鍙互涓嶇敤鍚?
    绛旓細濡傛灉涓嶆槸char鍨鏁扮粍锛屽氨涓瀹氳鏈墈}锛岃屼笖涓嶈兘鐢ㄢ溾濄傚鏋滄槸char鍨嬫暟缁勶紝鍙互鐢ㄢ溾濓紝涔熷彲浠ョ敤{}锛屼絾蹇呴』浜岄変竴锛屼笉鑳戒袱绉嶉兘涓嶇敤銆傝屼笖锛屼袱绉嶇殑鐢ㄦ硶涓嶅悓锛屸溾濇槸鈥渁bc鈥濊繖绉嶅啓娉曪紝鑰寋}鏄瘂鈥榓鈥欙紝鈥榖鈥欙紝鈥c鈥檥杩欑鍐欐硶銆
  • C璇█瀛楃鏁扮粍涓璧嬪垵鍊兼槸榛樿涓'\0'杩樻槸闅忔満鍊
    绛旓細鏅氭暟缁娌℃湁璧嬪垵鍊硷紝榛樿鐨勬暟缁勫厓绱犲兼槸闅忔満鏁帮紝涓嶆槸0銆傚鏋鍦ㄥ畾涔夋暟缁勬椂锛屾暟鎹被鍨嬪墠闈㈠姞涓婂叧閿瓧static锛屾暟缁勫彉鎴愪簡闈欐佹暟缁勶紱鎴栬呮妸鏁扮粍瀹氫箟鍦ㄥ嚱鏁扮殑澶栭潰锛屾垚涓哄叏灞鍙橀噺鏁扮粍锛岃繖鏃舵暟缁勫厓绱犵殑鍊艰嚜鍔ㄨ祴鍊间负0銆備緥瀛愶細includeint main(void){ int m = 0;static int n;int a = 5, b = 6, c = ...
  • C璇█鏁扮粍鐨勫垵濮嬪寲琛ㄧず鏂规硶
    绛旓細鎴戜滑鍙互杩欐牱瀹氫箟 define N 5 int a[N]杩欒〃鏄庝簡鏁扮粍鍚嶄负a锛涙暟缁勬湁5涓厓绱狅紱鍒嗗埆鏄痑[0]鍒癮[4];瀵逛簬鏁扮粍鏉ヨ锛涙暟缁勬槸鍙橀噺鐨勯泦鍚堬紝鍥犳鏁扮粍涔熷叿鏈変笌鍙橀噺鐩稿悓鐨勬暟鎹被鍨嬪拰鍌ㄥ瓨绫诲瀷銆鏁扮粍鐨绫诲瀷灏辨槸瀹冩墍鏈夌殑鍙橀噺鐨勭被鍨嬨鍦ㄥ畾涔夋暟缁勬椂锛屽簲鍦ㄦ暟缁勫悕鍓嶅鏁扮粍鐨勭被鍨嬪姞浠ョ‘瀹氥傚涓婇潰鐨刬nt a[10];鍒欒〃鏄...
  • C璇█涓,瀹氫箟(涓嶇敤static)涓涓惈鏈5涓厓绱犵殑鏁村瀷鏁扮粍,浣嗕笉璧嬩换浣曞,涓...
    绛旓細c璇█缂栬瘧鍣ㄦ湁榛樿鐨勮鍒欙紝鍏ㄥ眬鏁扮粍娌℃湁璧嬪垵鍊硷紝榛樿涓0锛屽眬閮ㄦ暟缁勪负闅忔満鏁
  • c璇█鏁扮粍鐨勫畾涔
    绛旓細C璇█鏀寔涓缁存暟缁勫拰澶氱淮鏁扮粍銆傚鏋滀竴涓暟缁勭殑鎵鏈夊厓绱犻兘涓嶆槸鏁扮粍锛岄偅涔堣鏁扮粍绉颁负涓缁存暟缁勩傚湪C璇█涓浣跨敤鏁扮粍蹇呴』鍏堣繘琛屽畾涔夛紝涓缁存暟缁勭殑瀹氫箟鏂瑰紡涓猴細绫诲瀷璇存槑绗︼紱 鏁扮粍鍚 锛沎甯搁噺琛ㄨ揪寮廬銆傚叾涓紝绫诲瀷璇存槑绗︽槸浠讳竴绉嶅熀鏈暟鎹被鍨嬫垨鏋勯犳暟鎹被鍨嬨傛暟缁勫悕鏄敤鎴瀹氫箟鐨勬暟缁鏍囪瘑绗︼紝鏂规嫭鍙蜂腑鐨勫父閲忚〃杈惧紡琛ㄧず...
  • c璇█涓,瀹氫箟鏁扮粍鍜屽紩鐢鏁扮粍鏃,鍏鏁扮粍鐨涓嬫爣鐨勬暟鎹被鍨嬪垎鍒厑璁告槸浠涔...
    绛旓細1銆C89/C90鏍囧噯锛瀹氫箟鏁扮粍鏃涓嬫爣鍙厑璁镐娇鐢ㄦ暣鍨嬨佸瓧绗﹀瀷甯搁噺锛屽紩鐢ㄦ暟缁勬椂涓嬫爣鍙互浣跨敤鏁村瀷銆佸瓧绗﹀瀷鐨勫父閲忔垨鑰呭彉閲 2銆丆99鏍囧噯锛氬畾涔夋暟缁勬椂涓嬫爣鍙互浣跨敤鏁村瀷銆佸瓧绗﹀瀷鐨勫父閲忔垨鍙橀噺锛屼絾鍙橀噺蹇呴』宸茬粡璧嬪硷紱寮曠敤鏁扮粍鏃朵笅鏍囧彲浠ヤ娇鐢ㄦ暣鍨嬨佸瓧绗﹀瀷鐨勫父閲忔垨鑰呭彉閲忋備互涓婃墍璇寸殑甯搁噺鍙婂彉閲忓潎鍖呭惈琛ㄨ揪寮忋
  • C璇█涓涓缁鏁扮粍姝g‘鐨瀹氫箟
    绛旓細鍦C璇█涓浣跨敤鏁扮粍蹇呴』鍏堣繘琛屽畾涔夈備竴缁存暟缁勭殑瀹氫箟鏂瑰紡涓虹被鍨嬭鏄庣鍜屾暟缁勫悕銆傜被鍨嬭鏄庣鏄换涓绉嶅熀鏈暟鎹被鍨嬫垨鏋勯犳暟鎹被鍨嬨傛暟缁勫悕鏄敤鎴瀹氫箟鐨勬暟缁鏍囪瘑绗︺傛柟鎷彿涓殑甯搁噺琛ㄨ揪寮忚〃绀烘暟鎹厓绱犵殑涓暟锛屼篃绉颁负鏁扮粍鐨勯暱搴︺傚浜庢暟缁勭被鍨嬭鏄庡簲娉ㄦ剰浠ヤ笅鍑犵偣锛氭暟缁勭殑绫诲瀷瀹為檯涓婃槸鎸囨暟缁勫厓绱犵殑鍙栧肩被鍨嬨傚浜庡悓涓...
  • 扩展阅读:c语言数组的下标范围 ... c语言中数组名是什么 ... c++编程 ... c语言数组遍历输出 ... 定义数组的三种写法 ... c语言怎么定义数组 ... c语言编程计算平均数 ... c语言数组的使用教程 ... c语言怎么把数字存入数组 ...

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