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语言数组嵌套的问题
不可以 数组没有嵌套一说。
[]里面只能是表示元素个数的数或空等情况,不可能是一个数组。
不知道你的目的是什么??可以考虑结构体数组去实现复杂元素的情况。