C语言里的结构体
来源:互联网 发布:java逻辑思维测试题 编辑:程序博客网 时间:2024/06/16 09:21
1.结构体的语法格式
struct Example
{
int i;//成员变量
char ch;
double d;
};
typedef struct
{
int i;
char ch;
double d;
}Example1;
typedef struct
{
char name[100];
int ID;
char address[100];
}Student;
int main(int argc,constchar * argv[])
{
struct Example s;
s.i = 10;//点是成员运算符
s.ch = 'a';//结构体变量的成员只能逐个赋值与访问
s.d = 3.14;
//s = {10, 'b', 2.68};//不能整体赋值或访问
printf("%d,%c,%lg\n", s.i, s.ch, s.d);
Example1 s1 = {20,'b',2.68};//结构体变量的初始化
printf("%d,%c,%lg\n", s1.i, s1.ch, s1.d);
Example1* p = &s1;
p->i = 30;//通过指针对成员变量赋值时,需要使用->这个成员运算符
p->ch = 'c';
p->d = 9.8;
printf("%d,%c,%lg\n", p->i, p->ch, p->d);
Example1 s2[3] = {
{10,'a',3.14},
{20,'b',2.68},
{30,'c',9.8}
};
s2[0].ch ='d';
for (int i =0; i <3; i++)
{
printf("%d,%c,%lg\n", s2[i].i, s2[i].ch, s2[i].d);
}
Student s3;
strcpy(s3.name, "张三");
s3.ID = 1000;
strcpy(s3.address, "江苏南京");
printf("%s,%d,%s\n", s3.name, s3.ID, s3.address);
return0;
}
2.结构体所占空间
首先。结构体以占空间最大的变量为单位分配空间。从结构体的第二个变量开始。地址的下标除以该变量的长度余数为零。则存放改变量。否则将该地址空出。直到地址等于单位最大空间地址。再重新分配
举例如下:见图
3.结构体值传递 和地址传递内存处理
3.1值传递如图
3.2地址传递:如下:
- C语言里的结构体
- c语言结构体里的函数
- C语言里的结构
- C语言里的结构体和联合体
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- C语言结构体里的成员数组和指针
- Disconf(二)disconf-web
- android自定义静态jar包和动态jar包的编译、使用
- Effective Java 记录
- IOS Dev Intro - NSThread of Thread Series
- 集成JPush推送
- C语言里的结构体
- MIT6.828 HW11: crash
- MySQL性能优化的最佳21条经验
- [从头读历史] 第254节 孔子和他的《春秋》 [BC722至BC658]
- 使用DialogActivity 注意事项
- Java中的基本数据类型
- Lua学习笔记1:Windows7下使用VS2008搭建Lua开发环境(一)
- Thrift在windows下的安装以及thrift命令生成java文件
- 通过windbg排查程序内存泄露