1、常量
在程序执行过程中,其值不发生改变的量称为常量
常量的定义,示例代码如下:
#define PRICE 30;
#include <stdio.h>
#define PRICE 30;
void main(){
int num,tot;
num = 10;
tot = num * PRICE;
printf("总价格为%d\n",tot);
}
常量的标识符(PRICE
)用一般用大写字母表示
2、变量
在程序执行过程中,其值可变的量称为变量
变量的定义,示例代码如下:
int a;
#include <stdio.h>
void main(){
int a;
a = 1;
printf("a的值为%d\n",a);
a = 2;
printf("a的值为%d\n",a);
}
变量定义必须放在变量使用之前,一般放在函数体的开头部分。
3、C语言中的数据类型
整形
在C语言中,可以采用八进制、十六进制和十进制来表示整数。在程序中是根据前缀来区分各种进制数的
十进制
十进制整常数没有前缀,其数为0~9
八进制
八进制整常数必须以0开头,其数为0~7
十六进制
十六进制整常数的前缀为0X,其数码取值为0~9,A~F
如:八进制数015
的十进制数为13
示例代码如下:
#include <stdio.h>
void main(){
int a;
a = 015;
printf("a的值为%d\n",a);
}
整形分为以下几种
int
:基本整形
short int
:短整型
long int
:长整型
unsigned
:无符号型
每种数据类型占多少个字节跟系统和编译器规定有关,以下为VC6.0开发环境下的测试结果
如 int
类型占用4个字节
#include <stdio.h>
void main(){
printf("int占用的内存大小为%d个字节\n",sizeof(int));
}
实型(浮点型,小数)
实型也称为浮点型,只采用十进制来表示小数,它有两种形式,小数形式和指数形式
小数形式
示例代码如下:
#include <stdio.h>
void main(){
float a;
a = 1.0;
printf("浮点数a的值为%f\n",a);
}
指数形式
示例代码如下:
#include <stdio.h>
void main(){
float a;
a = 1.2E2;
printf("浮点数a的值为%f\n",a);
}
浮点型分为以下几种:
float
:单精度
double
:双精度
long double
:长双精度
如:float
占用的内存大小为4个字节。(VC6.0开发环境下,与编译器有关,上文已经提到过了)
字符型数据
字符
字符常量只能用单引号括起来,不能用双引号
如:‘a’、‘b’
定义如下:
char a,b;
每个字符变量被分配一个字节的内存空间
字符串
字符串由双引号括起来
如:“CHINA”
字符串占用内存大小
字符串占的内存字节数等于字符串中字节数加1,增加的一个字节中存放字符"\0"
(ASCII码为0),这是字符串结束的标志。
如 字符串 “a”,占用两个字节的内存
数据类型转换
自动类型转换
遵循以下几条原则:
1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2、转换按数据长度增加的方向进行,以保证精度不降低。如int
型和long
型运算时,先把int
型转成long
型后再进行运算
3、所有的浮点型运算都是以双精度进行的,即使仅含float
单精度量运算的表达式,也要先转换成double
型,再作运算
4、char
型和short
型参与运算时,必须先转换成int
型
示例代码如下:
#include <stdio.h>
void main(){
char a,b;
int c;
a = 'A';
b = 'a';
c = a -b;
printf("c=%d\n",c);
}
本例程序中,a,b为字符型。在执行c = a -b
语句时,a和b都转换成int
型计算,结果也为int
型
强制类型转换
如浮点型转整形,示例代码如下:
#include <stdio.h>
void main(){
float a;
a = 1.35;
printf("%d\n",(int)a);
printf("%f\n",a);
}
a虽强制转为int
型,但只在运算中起作用,是临时的,而a
本身的类型并不改变。因此,(int)f的值为 1,而a的值仍为1.35
4、算术运算符
加法运算符+
减法运算符-
乘法运算符*
除法运算符/
取余运算符%
示例代码如下:
#include <stdio.h>
void main(){
printf("%d\n",100%3);
}
自增、自减运算符
++i
:i自增1后再参与其它运算
i++
:i参与运算后,i的值再自增1
示例代码如下:
#include <stdio.h>
void main(){
int a,b,c;
a = 5;
b = a++; // b = 5
c = ++a; // c = 7
printf("%d,%d\n",b,c);
}
复合赋值运算符
a+=5
等价于a=a+5
x*=y+7
等价于x=x*(y+7)
示例代码如下:
#include <stdio.h>
void main(){
int a=10;
a += 5;
printf("%d\n",a); // 15
}