数据类型及变量

1、什么叫做变量?什么叫做常量?
变量:在其值的作用域内可以改变的量。一个变量应该有一个名字,在内存占据一定的存储空间。
常量:其值不可以改变的量。
2、变量的三大特点
a.变量的数据类型:主要说明变量占用内存空间的大小如int型。
b.变量的作用域:变量的有效性的范围。
c.变量的存储类型:变量在内存中的存储方式。不同的存储方式影响变量在内存的生存周期。
3、区分变量的声明和定义
定义:创建一个变量,为其分配内存空间,并为它取变量名,一个变量只能定义一次。
声明:告知编译器这个变量名已经匹配在一块内存上了,但是并未为其分配内存,可以多次声明变量。

int a;
extern int a;
变量声明和定义的两种情况:
a. 定义性声明:需要建立存储空间。例如:int a在定义时就已经建立了存储空间。
b. 引用性声明:不需要建立存储空间。例如:extern int a其中变量a是在别的文件中定义的。
4、数据类型大小


字节大小是由编译器决定的,可以利用sizeof()可以测得每种类型分配的字节大小。我这里用的是Linux虚拟机下的gcc编译器,测得的结果如下所示:
sizeof(char) = 1
sizeof(short) = 2sizeof(int) = 4sizeof(long) = 4sizeof(float) = 4sizeof(double) = 8
当对于指针取大小的时候,却发现它的值为4,这是为什么呢?结果如下:
sizeof(char *) = 4
原来是因为指针里面存放的是地址,而地址的大小是固定的,由操作系统的位数决定。不同的操作系统,地址长度不同,指针的大小也就不同。我这里使用的是32位机,所以指针的大小占了4个字节。
5、右左法则
右左法则:从最内部的括号(变量)开始阅读声明,先向右看,再向左看,碰到一个括号时调转阅读方向,括号内的内容阅读完毕则跳出括号,直到全部阅读结束为止。
例如:
(1)int a;                          a是整型变量。
(2)int *a;                         a是整型指针变量。
(3)int **a;                        a是整型指针的指针变量。
(4)int *a[10];                   a是整型指针数组,数组里面存放着整型指针。
(5)char (*a)(int);             a是一个函数指针变量,指针变量指向一个形参为int型,返回值为char型的函数。
(6)int (*a[10])(int);          a是一个指针数组,该指针指向一个形参为int型,返回值为int型的函数
(7)int *(* (*a) (int))[10];  a是一个函数指针变量,该函数是一个形参为int型,返回值为数组指针的函数,该数组指针指向整型指针
(8)void *(*a)(char ,int (* )( )); a是一个函数指针变量,该指针指向一个形参为char,另一形参为函数指针变量,空返回值为void *型的函数,参数函数的形参为空,返回值为整型的函数。
(9)int *( *( *a[5])( ))( );           a是一个函数指针数组,该函数形参为空,返回值为指向函数指针的整型指针。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值