A. c語言怎麼初始化嵌套結構數組
同學,你注意到了Create()函數裡面,你又定義了一句: List pr;了么?這句話時關鍵,首先,你在main 函數(我猜應該是main吧)中寫道: List pr1=Creat("p1",2,1); Insert(&pr1);看,你這個pr1是個局部變數吧?只在main()中有效的。而你上面那個Create中定義的呢?也是個局部變數,只在Create()中有效。所以,即使你在Create()中費勁全力為pr賦值。等調用完Create()後,pr還是會消亡的,回到main,時,這里的pr1就是另一個List變數了。 總而言之,Creat()裡面的pr和main()裡面的pr1是完全不同的兩個變數。要想讓他們變成一個變數。可選用指針傳參。或者定義成全局變數。 另外,我一看到你的描述的那個「燙」字,就知道你用的是VC6.0吧?呵呵
B. C語言的多維數組怎麼嵌套定義,以及怎麼賦值
1、使用malloc函數,先分配第一維的大小,然後再循環分配每一維的大小。
2、常式,分配3行4列二維數組:
#include<stdio.h>
#include<malloc.h>
intmain()
{
int**a;
inti,j;
a=(int**)malloc(sizeof(int*)*3);//為二維數組分配3行
for(i=0;i<3;++i){//為每列分配4個大小空間
a[i]=(int*)malloc(sizeof(int)*4);
}
//初始化
for(i=0;i<3;++i){
for(j=0;j<4;++j){
a[i][j]=i+j;
}
}
//輸出測試
for(i=0;i<3;++i){
for(j=0;j<4;++j){
printf("%d",a[i][j]);
}
printf(" ");
}
//釋放動態開辟的空間
for(i=0;i<3;++i){
free(a[i]);
}
free(a);
return0;
}
/*
輸出:
0123
1234
2345
*/
C. 問一個關於C語言嵌套和數組的問題。
array數組沒有初始化
如果期望取得0的話可以用memset初始化
memset(array,0,3*3*3*sizeof(int));
D. 我剛學C語言,下面是一個數組嵌套的例子,還請專業人士給詳細講解一下為什麼輸出結果是:1-11-1,先謝謝了
for(i=0;i<4;i++)
for(j=0;j<i;j++)
a[i]=a[j]-a[i];
執行這個之後:a[0]= 1; a[1]= -1; a[2]= 1; a[3]= -1;
又因你輸出的結果中沒有格式控制,結果就成:「1-11-1」;
如果你把輸出改成「printf("%d\n",a[i]);」;就可以明顯的看到了、、、、、
E. C語言為動態結構體數組分配內存(動態結構體中嵌套一動態數組)
//在結構體中只保存指針
#define BUFFER_TITLE 256
#define BUFFER_INFO 4096
typedef struct tagInfo
{
char* szTitle;
char* szInfo;
} INFO, *LPINFO;
LPINFO pInfo = (LPINFO)malloc(sizeof(INFO)); //分配結構體內存
pInfo->szTitle = (char*)malloc(sizeof(BUFFER_TITLE)*sizeof(char));
pInfo->szInfo = (char*)malloc(sizeof(BUFFER_INFO)*sizeof(char));
F. C語言數組與數組之間的相互插入
把break;寫在if語句裡面就對了。
G. C語言數組元素可以為數組嗎
不可以,數組作為右值無法進行復制,你應該存放數組指針,該指針指向你要操作的數組,舉個例子
unsigned char*pArr[3] = {test_1,test_2,test_3};
unsigned char test_1[] = "test_1";
unsigned char test_2[] = "test_2";
unsigned char test_3[] = "test_3";
以上只是一個小例子希望你能舉一反三。
H. c語言中內嵌數組可以初始化嗎怎麼初始化
一般對數組初始化可以用以下方法實現:
(1)在定義數組時對數組元素賦以初值。如:
static int a[10]={0,1,2,3,4,5,6,7,8,9};
經過上面的定義和初始化後,a[0]=0,a[1]=1,…,a[9]=9。
(2)初始化時可以只對一部分元素賦初值。例如:
static int a[10]={0,1,2,3,4};
定義的數組有10個元素,但只對其中前5個元素賦了初值,後5個元素初值為0。
(3)如果想使一個數組的元素值全部為0,可以用下面的方法:
static int a[10]={0,0,0,0,0,0,0,0,0,0};
不能用:
static int a[10]={0*10};
如果對static型數組不賦初值,系統會對定義的所有數組元素自動賦以0值。
(4)在對全部數組元素賦初值時,可以不指定數組長度。
I. 數組中能否嵌套數組
可以的!
前提是t數組必須是整形,因為數組[]里的表達式就是整數類型!
J. c語言數組嵌套的問題
不可以 數組沒有嵌套一說。
[]裡面只能是表示元素個數的數或空等情況,不可能是一個數組。
不知道你的目的是什麼??可以考慮結構體數組去實現復雜元素的情況。