学习记录 2020-2-8

结构体初始化

参考:
https://blog.csdn.net/ericbar/article/details/79567108
http://c.biancheng.net/view/1407.html

定义数组结构体

struct array{
	int size;
	int usenum;
	int *arr;
}

初始化方式1:定义时初始化

struct array test={10,0,NULL};

初始化时顺序对应。

初始化方式2:

定义后逐个对结构体变量进行赋值

struct array test;
test.size=10;
test,usenum=0;
test.arr = NULL;

初始化方式3:

定义结构体时进行乱序初始化,相当于第一种与第二种方法的组合

struct array test={
	.size=10;
	.arr = NULL;
	,usenum=0;
}

个人觉得这种方式相对于第一种更加明了 知道各个变量的具体值。相对于第一种更加简便。

初始化方式4:

同样可以乱序

struct array test={
	size:10;
	arr : NULL;
	usenum:0;
}

声明与定义的区别

在上述说明结构体的过程中对变量的定义
变量的定义和声明概念有点模糊,现在进行总结,首先明确定义和声明的区别,无论是函数还是变量的定义都要有分配存储空间和内存地址的操作,而声明则不是,仅仅告诉编译器有这个变量而已。

函数定义和声明

函数的声明:函数原型就是函数的声明,说白了就是函数的函数名、返回值类型、参数列表。其主要作用就是给编译器提供原型,让编译器在编译程序时帮我们进行参数的静态类型检查。
函数定义:函数定义就是函数本身,函数名就是函数存储内存地址 函数调用实际上来说就是解指针引用
: 在进行编译时 编译器对程序处理以每个文件为单位 并按照语句顺序进行处理 说这些什么意思呢 就是说或如果在fun1中调用fun2 必须在fun1 之前进行声明 或者进行定义(此时的定义还有声明的作用)

变量的声明和定义

通过上述对于函数的分析,可以推出,变量的定义是为变量分配内存空间并规定变量名称,但是与函数不同的是,变量的定义和声明是在一起的,当你定义一个变量后,作用域从该行开始到定义的代码段末结束。
除此之外变量的声明语句还有

extern int a;

只有声明的作用不具有定义作用,如果进行初始化则会出现错误,编译器会发现有两处定义,即发生重复定义错误。
最后declare and definition

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值