当前位置:首页 » 编程语言 » c语言数组内可以嵌套数组吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数组内可以嵌套数组吗

发布时间: 2022-07-14 06:48:46

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语言数组嵌套的问题

不可以 数组没有嵌套一说。

[]里面只能是表示元素个数的数或空等情况,不可能是一个数组。

不知道你的目的是什么??可以考虑结构体数组去实现复杂元素的情况。