C语言中,未指定长度的数组声明时,可以依据初始值列表来确定数组长度吗? c语言中定义数组的时候可不可以缺省数组长度 ,在用户输入任意...

c\u8bed\u8a00\u4e2d\u6ca1\u6709\u5b9a\u4e49\u957f\u5ea6\u7684\u6570\u7ec4\u53ef\u4ee5\u76f4\u63a5\u521d\u59cb\u5316\u4e3a0\u5417\uff1f\u6bd4\u5982int a[]={0}

\u53ef\u4ee5\uff0cc\u8bed\u8a00\u4e2d\u65e0\u957f\u5ea6\u6570\u7ec4\u5728\u58f0\u660e\u65f6\uff0c\u4e00\u5b9a\u8981\u8d4b\u521d\u503c\uff0c\u7cfb\u7edf\u6839\u636e\u6570\u636e\u7684\u591a\u5c11\u81ea\u52a8\u5b9a\u4e49\u6570\u7ec4\u7684\u957f\u5ea6\u3002\u5f53\u7136\u4e5f\u53ef\u4ee5\u8d4b0\u503c\uff0c\u4f46\u4e5f\u53ea\u6709\u4e00\u4e2a\u5143\u7d20\uff0c\u7c7b\u4f3c\u4e8eint a[1]\uff0ca[0]={0}\u3002

\uff081\uff09\u4f60\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u957f\u5ea6\u957f\u4e8e\u9700\u8981\u7684\u6570\u7ec4\uff0c\u4f8b\u5982\uff1a char str[500];
\u6216\u8005 \uff082\uff09\u8fd0\u884c\u65f6\uff0c\u8f93\u5165\u957f\u5ea6\uff0c\u505a\u52a8\u6001\u5206\u914d\uff0c\u518d\u8f93\u5165\u6570\u636e \uff0c\u4f8b\u5982\uff1a
char *str; int n;
printf("input length n: "); scanf("%d",&n);
str = malloc(sizeof(char) * n);
\u6216\u8005 \u4e0d\u77e5\u9053\u957f\u5ea6\uff0c\u5b8c\u5168\u968f\u673a\uff0c \u90a3\u4e48 (3) \u7528 realloc \u53cd\u590d\u52a8\u6001\u5206\u914d\u3002\u8fd9\u4e2a\u8f83\u7e41\u9501\uff0c\u4f60\u53ef\u53c2\u8003\u4e0b\u9762\u7684 \u6574\u578b\u6570\u7ec4\u5206\u914d\u6cd5\uff0c\u505a\u4f60\u7684 char \u6570\u7ec4 \u6216 \u522b\u7684\u6570\u7ec4\u7684 \u53cd\u590d\u52a8\u6001\u5206\u914d\u3002
#include
#include /* realloc, free, exit, NULL */

intmain ()
{
int input,n;
int count = 0;
int *numbers = NULL; //\u52a8\u6001\u6570\u7ec4
int *more_numbers = NULL;

do{
printf ("Enter an integer value (0 to end): ");
scanf ("%d", &input); //\u8f93\u5165\u4e00\u4e2a\u6570
count++; // \u8ba1\u6570\u5668\uff0c\u6570\u7684\u4e2a\u6570

more_numbers = (int*) realloc (numbers, count *sizeof(int)); //\u5206\u914d\uff0c\u589e\u52a0\u5185\u5b58

if(more_numbers!=NULL) { //\u68c0\u67e5\u662f\u5426\u5206\u914d\u6210\u529f
numbers=more_numbers;
numbers[count-1]=input;
}
else{
free (numbers);
puts ("Error (re)allocating memory");
exit (1);
}

}while(input!=0); //\u5faa\u73af

printf ("Numbers entered: ");
for(n=0;n<count;n++) printf ("%d ",numbers[n]);
free (numbers);

return0;
}

C语言中,未指定长度的数组声明时,可以依据初始值列表来确定数组长度。
比如unsigned char array[]={12,34,56};虽然没有指定长度,系统仍会给array分配3个字节的空间,通过sizeof(array)计算得到的结果也是3。
请采纳,谢谢

  • C璇█涓,涓嬪垪鏁扮粍澹版槑璇彞涓,姝g‘鐨勬槸( )銆
    绛旓細A A閫夐」涓紝inta[]={1锛2锛3锛5}锛涳紝鐢变簬娌℃湁鎸囧畾鏁扮粍闀垮害锛屾暟缁勯暱搴鍗充负璧嬪煎垪琛ㄧ殑鍏冪礌涓暟锛屽洜姝ゆ纭紱B閫夐」涓紝璧嬪煎厓绱犱釜鏁板ぇ浜庢暟缁勯暱搴︼紱C閫夐」涓紝搴旇鐢ㄥ崟寮曞彿灏嗘瘡涓瓧姣嶆嫭璧锋潵锛汥閫夐」涓紝绯荤粺浼氭坊鍔犱竴涓技0浣滀负瀛楃涓茬粨鏉熺锛屾暟缁勯暱搴﹀簲涓5銆
  • C璇█鏁扮粍瀹氫箟鏃跺彲浠ヤ笉寮杈闀垮害鍚?
    绛旓細娌℃湁鍦ㄦ柟鎷彿涓鎸囧畾鏁扮粍闀垮害鏃讹紝蹇呴』鏈夊垵鍊艰〃锛屽惁鍒欏皢瀵艰嚧璇硶閿欒锛屽锛歩nt a[] = {1, 2, 3};鍒檃鐨勯暱搴︿负3銆
  • C璇█ 杈撳叆涓涓病鏈闀垮害闄愬埗鐨勫瓧绗︿覆鏁扮粍
    绛旓細涓ょ鍔炴硶锛岃涓涓┖鏁扮粍骞朵笖鍒濆鍖栦负绌篶har ch[]=""锛屾垨鑰呯敤鎸囬拡char *ch锛岀劧鍚巊ets(ch)灏卞彲浠ヤ簡
  • C璇█涓鍙互瀹氫箟涓嶅畾闀垮害鐨勬暟缁(鍗鏁扮粍闀垮害鐢卞彉閲忕‘瀹)鍚?
    绛旓細C璇█涓鍙互瀹氫箟涓嶅畾闀垮害鐨勬暟缁锛堝嵆鏁扮粍闀垮害鐢卞彉閲忕‘瀹氾級鍚楋紵C璇█涓彲浠ュ畾涔変笉瀹氶暱搴︾殑鏁扮粍锛堝嵆鏁扮粍闀垮害鐢卞彉閲忕‘瀹氾級鍚楋紵
  • C璇█涓,瀵逛簬涓嶇煡閬闀垮害鐨勬暟缁鎬庢牱杈撳叆銆傘傘
    绛旓細1銆佷竴缁存暟缁勭▼搴忎妇渚嬶細鍐掓场娉曘傚緱鍒扮粨鏋滆繘琛岃緭鍑恒備簩缁存暟缁勫父绉颁负鐭╅樀銆傛妸浜岀淮鏁扮粍鍐欐垚琛屽垪鐨勬帓鍒楀舰寮忥紝鍙互褰㈣薄鐨勭悊瑙d簩缁存暟缁勭殑閫昏緫缁撴瀯銆2銆C璇█涓涓嶈兘瀹氫箟鏈‘瀹氫釜鏁鐨勬暟缁勶紝涓嶈繃鍙互鐢ㄦ寚閽堟潵鍙樼浉鐨勫畬鎴愪綘鐨勮姹傘3銆佽緭鍏ユ暟缁勯渶瑕佷娇鐢ㄦ寚閽堣幏鍙栧湴鍧鍚庯紝灏辫兘瀵瑰緱鍒扮殑鏁扮粍灏辫鎿嶄綔浜嗐
  • 璇烽棶C璇█涓,濡備綍鍦ㄧ粨鏋勪綋鍐呭畾涔闀垮害涓嶇‘瀹鐨勬暟缁鍛?
    绛旓細涓ょ鏂规硶:涓绉嶆槸閲囩敤鎸囬拡, 鍔ㄦ佸垎閰嶅唴瀛 鍙︿竴绉嶈鎼滅储"鏌旀鏁扮粍", 杩欑鏂瑰紡鍚屾牱闇瑕佸湪鍫嗕腑鍔ㄦ佸垎閰嶅唴瀛.
  • C璇█涓鍙互瀹氫箟涓嶅畾闀垮害鐨勬暟缁(鍗鏁扮粍闀垮害鐢卞彉閲忕‘瀹)鍚?
    绛旓細鏈鍚庤ˉ鍏呬竴鐐癸紝妤间笂鏈変汉璇存暟缁勭殑闀垮害涓嶈兘鐢ㄥ彉閲忔潵纭畾锛岃繖鏄敊璇殑銆 C涓鏈 鍙橀暱鏁扮粍 鐨勬蹇靛憖(c99鏍囧噯)锛屸滃彉闀库濈殑鎰忔濆氨鏄 鍙互鐢ㄥ彉閲忔潵鎸囧畾鏁扮粍鐨勯暱搴︼紝鑰屾暟缁勪竴鏃﹀垱寤 闀垮害灏辨棤娉曞彉鍖栦簡锛岃屼笖鍙橀噺蹇呴』璧嬪煎湪鍏堬紝鍙橀暱鏁扮粍鎵嶈兘鍒涘缓銆傛煇浜涗汉涓嶈兘鍥犱负鏃犳硶姝g‘鐨勮缃紪璇戝櫒鏀寔c99鏍囧噯锛岃屽惁瀹氫簡 鍙...
  • c璇█涓瀹氫箟涓涓暟缁勫彲浠ヤ笉鍐鏁扮粍鐨勯暱搴鍚?
    绛旓細涓嶅彲浠ワ紝濡傛灉涓嶈兘纭畾闀垮害锛璇风敤STL搴撻噷鐨凩IST,MAP,SET绛夋暟鎹被 鎴栬呭紑鐨勬暟缁寮鐨勫ぇ涓浜涳紝淇濊瘉浣犱笉浼氳秺鐣岋紝澶氫綑鐨勯儴鍒嗕笉閫傜敤灏卞ソ 鍦ㄥ畾涔夌殑鏁扮粍鐨勬椂鍊欙紝鍙互閫氳繃鍙橀噺瀹氫箟闀垮害濡傦細scanf("%d", arrayLen);int[] data = new int[arrayLen];
  • C璇█涓,濡備綍瀹氫箟澶у皬涓嶇‘瀹,鐢辫繍琛屾椂纭畾澶у皬鐨勬暟缁
    绛旓細include <stdio.h> include <stdlib.h> // malloc, free int main(){ int i, n;int* p; // 澹版槑涓烘寚閽 scanf( "%d", &n );p = ( int* )malloc( sizeof(int) * n ); // 浠ュ瓧鑺備负鍗曚綅鍒嗛厤 for ( i = 0; i < n; ++i ) { p[i] = i+1;printf( "%d ", p[i] ...
  • C璇█涓鏅鏁扮粍鍦ㄥ畾涔夌殑鏃跺欎笉缁欏嚭鏁扮粍鐨勫叿浣闀垮害,閭d箞璁$畻鏈烘槸鍦ㄨ繍琛...
    绛旓細鍙橀暱鏁扮粍锛氭暟缁勯暱搴︿负鍙橀噺锛屽湪缂栬瘧鏈熼棿涓嶈兘纭畾鏁扮粍闀垮害锛瑕佺瓑鍒扮▼搴忚繍琛屽悗锛屽彉閲忚祴鍊煎悗锛堟暟缁勫畾涔夎鍙ヤ笉瑕佸啓鍦ㄥ彉閲忚祴鍊间箣鍓嶏紒锛夛紝鎵嶈兘缁欐暟缁勫垎閰嶅唴瀛樸傚彉闀挎暟缁勬湰璐ㄨ繕鏄潤鎬佹暟缁勶紙瀹氫箟鍓嶅ぇ灏忓彲鍙橈紝浣嗗畾涔夊悗涓嶈兘鏀瑰彉澶у皬锛夈傝瀹氫箟鍔ㄦ佹暟缁勯渶瑕佺敤malloc鍑芥暟鏉ョ敵璇峰唴瀛樸
  • 扩展阅读:c语言怎么求数组长度 ... c语言sizeof求数组长度 ... c语言数组长度计算 ... 数组长度怎么计算 ... c数组长度怎么获得 ... 数组的长度怎么获取 ... c语言数组a 10 是几个数 ... 获取数组长度的方法 ... c语言定义数组可以不指定长度吗 ...

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