一,变量的类型与声明
1.基本类型
类型 | 描述 |
---|---|
char | 一个字节(八位)声明一个字符整型变量 |
int | 声明一个整型变量,四个字节,一般来说取值范围 -2147483648 到 2147483647。 |
float | 单精度浮点值。1位符号,8位指数,23位小数。 |
double | 双精度浮点值。1位符号,11位指数,52位小数。 |
void | 表示无类型。 |
2.前加extern只是声明变量名而不定义
一个程序中,一个变量只能定义一次,但可以声明多次
extern int i; //声明一个变量i,不是定义,无存储空间,只有给予赋值,才算定义,会分配存储空间 int i; //声明一个变量i,也是定义,有存储空间
3.左值与右值
左值必须是变量,右值可以是变量,常量或者表达式。
#include<stdio.h>
int main()
{
int a,b;
a=(b=3);//注意左值 等同a=b=3,但是a=(a=b)=3是错误表示
printf("%d\n",a);
return 0;
}
二,常量类型
1.整数常量
前缀指定基数:0 表示八进制,0x 或 0X 表示十六进制,不带前缀则默认表示十进制。
2.浮点常量
(1).由整数部分、小数点、小数部分组成。 如3.1415926。
(2).由整数部分、指数、e或E租车。如520E-8。
3.字符常量
字符常量是需要 ‘ ’ 括起来,可以由char声明定义存储。
(1).一个普通的字符 字母或数字 如 ‘ 1 ’, ‘ x ’。
(2).转义字符,符号 \ 加字符 有着特殊含义。
转义序列 | 含义 |
---|---|
\\ | \ 字符 |
\' | ' 字符 |
\" | " 字符 |
\? | ? 字符 |
\a | 发出一次警报 |
\b | 退格键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车 |
\t | 水平制表符,等于Tab键 |
\v | 垂直制表符 |
\ooo | 一到三位的八进制数 |
\xhh . . . | 一个或多个数字的十六进制数 |
4.字符串常量
括在双引号 "" 中的。如 “ Hello world !”。
三.定义常量
1.宏定义:#define预处理器
#define 常量名 常量值 define 定义的是不带类型的常数,只进行简单的字符替换。 在预编译的时候起作用,不存在类型检查。 边缘效应:#define N 2+3, N 的值是 5
#include <stdio.h>
#define N 2+3
//正确写法 #define N (2+3)
int main(){
double a ;
a = (float)N/(float)2;
printf("a 的值为 : %.2f", a);
return 0;
}
在编译时我们预想 a=2.5,实际打印结果是 3.5 原因是在预处理阶段,编译器将 a=N/2 处理成 a=2+3/2,这就是 define 宏的边缘效应,所以我们应该写成 #define N (2+3)。
2.const 关键字
const 变量类型 变量名= 变量值; const 定义的是变量不是常量,只是这个变量的值不允许改变。是常变量。 带有类型,编译运行的时候起作用存在类型检查。