C语言中的数据类型
数据类型的本质,固定大小内存块的别名。
数组名代表数组首元素的地址。
数组首元素的地址,&代表整个数组的地址。
数组数据类型,怎么定义数据数组类型,定义数组类型指针,数组类型和数组指针类型的关系,很重要的。
可以使用sizeof求数据类型的大小。sizeof测量变量的大小在编译期就已经完成。
可以通过typedef自定义数据类型。
数据类型的封转
1、void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何数据类型的指针。
2、void修饰的函数返回值和参数,表示是无,如果函数没有返回值,应该将函数声明为void类型,如果函数没有参数,应该将函数括号中用void来明确表示。
3、void指针的含义,C语言规定,只有同种类型的指针才能进行赋值,void* 作为左值的时候,可以接收任何类型的指针,void* 作为右值的时候,需要进行强制类型转换。
4、不存在void类型的变量,在C语言中,没有定义void应该分配多大的内存。
变量的三要素,名称,大小,作用域
函数的三要素,名称,参数,返回值
数据类型的思考
如何表达数组的数据类型?
函数可以看作是一种数据类型? 函数也是一种数据类型,是一种特殊的数据类型。
变量的本质,是既能读又能写的内存对象,若初始化之后不能修改的量称之为常量。
变量的本质是一段连续内存空间的别名,是一个门牌号,通过变量来操作内存,对内存可读可写,通过变量往内存中读写数据。那么变量跑哪里去了?变量在代码区中。
程序通过变量名来操作变量直行的内存空间。
通过变量修改内存的方法有两中,一种是直接进行修改内存,另外一种是间接修改内存。
如果想要间接修改内存中的值,应该那到这个内存的地址,然后强制转换成为对应类型的指针的地址,然后在通过*来操作这块内存。
也就是说,内存是有地址编号的,拿到了这个地址编号就可以修改内存中的数据了。
内存空间可以多取几个别名,C++引用就是干这个事情的。
也就是说,对类型可以区别名,通过typedef,对内存空间也可以取别名,就是C++中的引用。
变量的生命周期,涉及到内存四区模型和函数调用模型。
*就像一把钥匙,拿着这个钥匙找到对应的内存空间,修改或者是得到内存空间中的值。
请发表评论