.变量与常量的定义及其基础知识:
一.变量定义:其值在其作用域内可以改变的量。
(1).变量具有地址属性: 一个变量应该有一个名字,在内存中占据一定的存储空间。
(2).变量在使用前必须先定义。
(3).变量按其定义类型可分为:整型变量、字符型变量、浮点型变量、指针型变量
(4).强制类型转换:
int a=97; //整型变量a在内存中以97的二进制形式存放,当它使用时,会以十进制形式表示出来。
char ch1=‘a’;//字符变量ch1的ASCII码是97,也是以97的二进制存放的,使用时,会被以字符“a”的形式表现出来。
char ch2=(char)a;//将整型变量a强制类型转换成字符型,a变量里的值没有变,变的是它的类型,它里面值还是97的二进制,它类型变成了char,97的二进制变成char型,表现出来就是字符“a”。
char *p=(char*)a;//声明一个字符型指针变量p,p是个变量,它里面的值可变,它的值是整型变量a的值强制类型转换成了字符指针类型。这个时候p里面的值还是97的二进制只不过这个97的意义已经代表了一个字符型指针,也就是一个指向字符的地址。
总结(4):变量在内存中存放和它的值无关,而是与它的类型有关。
(5).整型和地址类型转换:
int add=0x12345678;
int *p=(int*)add;
add是个整型变量,add里是0x12345678的二进制数,以十进制表现出来,p是个整型指针变量名,p里面是0x12345678的二进制数,以地址的方式表现出来,代表地址0x12345678。*p是通过*去访问地址0x12345678这个地址处的数据(如果你试图去打印它,会出错,因为这个地址你不一定有权限去访问)。&p是取出整型指针变量p的地址,因为p是个变量,它也有自己的地址,所以可以取出它的地址。
(6)局部变量:也称内部变量,是在函数内部作定义说明的,其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。(形参是属于被调用函数的局部变量,实参变量是属于主函数调用的局部变量)
全局变量:其作用域是整个源程序。
二.常量定义:其值不会发生改变的量称为常量,它们可以和数据类型结合起来分类,如整形常量、浮点型常量、字符常量等。
(1):常量可以不经过定义和初始化,而直接引用。
(2):常量的值在其作用域内不会发生改变,也不能再被赋值,在其出现时就被当做一个立即数来使用,也就是说它只能被访问、被读而不能被写、被赋值。