1. c语言数据类型的存储结构

32位系统为例:int,
float,
unsigned
int都是占4个字节,double是8个字节。
以int
i=0x01020304为例,在Big
Endian操作系统下(比如苹果的OSX),在内存里的4个字节分别是:0x01
0x02
0x03
0x04。在Little
Endian系统下(比如windows),4个字节分别是0x04
0x03
0x02
0x01。

2. C语言中,数据结构存储结构属于线性还是非线性

这个不能一概而论
通常所说的数组是线性存储的,还有数据结构书中说的线性表,
链表通常是非线性的
其他的数据结构数据结构存储结构包括顺序存储结构和链式存储结构;
顺序结构:数据元素存放的地址是连续的-----线性的存储;
链式结构:数据元素存放的地址是否连续没有要求----非线性的存储

3. C语言中数据的存储结构指的是什么

数据结构,也就是数据是如何管理的。
比如你要管理学生,那么,每个学生都有姓名、年龄、性别,这三个元素可以组合成一个结构体,这就是数据结构。
如果你要管理多个学生,那么就可以用你刚刚定义的结构体类型,再定义一个结构体数组,数组的每个成员就是一个学生。那么就管理了多个学生。
不知道你懂了没~

4. c语言结构体的存储

书上写的 fread(&student[i],sizeof(struct studnt ),1,fp)
这里书上应该是一个静态链表,所以才有了student[i]这样的变量,事实上&是有必要的,因为fread第一个参数要求地址,结构体名不是地址
void store (struct student *head)
{
int a;
FILE *fp;
fp=fopen("student.date","wb");
fscanffp,"%d",a);
struct student *P =(struct student *) malloc(sizeof(struct student ));
P->data = a;
P->next = head->next;
head->next = P;
}

5. 大一c语言存储结构试题

行序存储,每行6个元素,a[5][5]前共有5×6+5=35个元素,所以其地址为:0x1020+35*4=0x10ac
列序存储,每列8个元素,a[5][5]前共有5×8+5=45个元素,所以其地址为:0x1020+45*4=0x10d4

6. C语言数据存储结构问题

由于node2是一个指针,所以不能用node2.strValue
应该为node2->strValue
如果要用node2.strValude,则node2的定义应该为struct Parameter node2
请注意指针变量与非指针变量的区别

7. C语言中数据的存储结构指的是什么啊

首先说下,你的程序定义了2个T,是重复定义,编译不能通过的,把共用体名定义成其它的(例如T2)

接下来说说共用体类型:
共用体类型和结构体类似,都是由不同的数据类型所组成的,区别是结构体类型的变量是分别存放的,而共用体类型的变量是存放在同一段内存空间的。这段内存空间的大小由共用体中成员的类型决定,占据内存空间最大的成员所占的字节数就是共用体变量所占的字节数。(摘自《Visual C++ 开发技术大全》P53)

由这段话可以看出你那个程序里的共用体所占空间应该和double型的一样即8字节, 加上int型的4字节,答案是12字节,选C

不过不知道为什么,用我的VC++6.0写的这个程序:

#include<iostream.h>
struct T {
int w;
union T2 U;
};
void main()
{
cout<<sizeof(int)<<", "<<sizeof(double)<<endl;
cout<<sizeof(T)<<endl;
}

输出:
4 8
16

说T类型所占空间是16,不知道为什么,知道的请解释下。

不过你的答案里没有16这个选项,所以可以不用考虑我后面说的。

8. c语言实现线性表的顺序存储结构

#include "stdio.h"
#include "stdlib.h"
int main()
{ int a[10],i,j,k,t,x;
for(i=0;i<9;i++)
a[i]=rand()%100; //给数组赋随机值范围0-100

for(i=0;i<8;i++) //数组从小到大排序
for(j=i+1;j<9;j++)
if(a[i]>a[j])
{ t=a[i];a[i]=a[j];a[j]=t;

}

//输出一维数组中的数

for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");

//向数组插入一个数x
scanf("%d",&x);
if(x>a[8]) a[9]=x;
else if(x<a[0])
{
for(i=9;i>0;i--)
a[i]=a[i-1];
a[0]=x;
}

else
{for(i=0;i<8;i++)
if(x>a[i]&&x<a[i+1]) k=i+1;
for(j=9;j>k;j--)
a[j]=a[j-1];
a[k]=x;
}
//输出插入后的数组
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");

//删除数组中的一个元素
//输入要删除的元素的下标
scanf("%d",&k);
for(i=k;i<10;i++)
a[i]=a[i+1];
//输出删除后的数组
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");

}

9. c语言数据结构的表示(储存结构)用类型定义(typedef)描述怎样分配空间

typdef 定义结构体,所得变量存储结构与结构体是一样的。
typedef stuct stxx{
char i;
int j;
}defxx;
defxx xx;//定义变量

struct styy{
char i;
int j;
}yy;
xx 和yy的存储结构完全一样。
而结构体的存储结构则与你的机器字长,编译器类型和编译的参数设置有关。
如你使用的编译器支持字节对齐,并且你设定了字节对齐,那你定义的变量就是按照字节一个挨着一个,如果你没有设置字节对齐,那每个变量的存储空间就是结构体里面最长的那个成员所占的空间。

10. c语言的存储结构不是有顺序存储和链式存储吗

双向链表和二叉树都是数据结构,一种数据结构是不能用来描述另一种数据结构的存储方式的。
一定要分清楚存储方式,和数据结构。