简单结构体

结构体 struct +(sturct name)A
(本身比较抽象,就像Java中的抽象类,它只定义,本身并不实现,在调用时实现)
**结构体就像数组,属于聚合类型,只能在定义时进行初始化
**eg:struct stu {
char name[20];
int age;
}stu;
**刚刚问结构体内部时 用 ’ . ’
**对结构体内的数组进行修改时,不能直接赋值,通过strcpy进行赋值
typedef struct A{}a; struct A被重命名为a
**结构体内部继续该结构体类型自引用时,必须用指针类型,
否则结构体不能计算出自己到底有多大,进而崩溃;
**结构体类型 链表
typedef struct Node//相当于定义,编程时必须在最前边定义
{
int date;
struct Node * next//此处的struct 必须写 ;因为C编译器从上而下执行,并不知Node为结构体
}Node;//此处Node跟上边的含义不同;

	struct Node
	{
	 int data;
	 struct Point p;
	 struct Node* next;
	}n1 = {10, {4,5}, NULL}; //结构体嵌套初始化  
                           结构体中访问         变量用 .   访问   指针用 ->
**
**所有函数的返回值支持列式表达式
   eg: int len =strlenI(strcpy(a,b));

assert(表达式) 它会确告诉程序员第一个遇到的错误在哪,但它不是函数

  在debug情况下起作用,在release下会失效
**运行错误        最好经常打断点
**运算符的操作数为二进制;若输入的是十进制,在计算机内就已经以二进制存储,用时直接用
   eg:  2 | 3 ;  234 >>2(对应二进制数右移)
  #include"stdio.h"
#include"windows.h"
typedef struct {
	int a[5];//设置类型及最大长度
	int last;//记录尾数据位置

}A;//重命名为A
int main()
{
	//结构体是聚合类型,若内部有数组,要在在定义时直接初始化;后期内部数组不能改
	A b[2] = {  { {5, 2, 5, 3, 6},4 },
				{ {8, 2, 3, 4, 6},4 }
	          };           //创建A类型实例b;创;建了两个内容 b[1],b[2]


	int i;
	for (i = 0; i < 2; i++)
	{
		printf("%d   %d  ", b[i]);//这里只有一个%d ,
		//所以就打印1个元素,
		//而不是整个结构体
		printf("\n");
	}
	
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值