1、常量:不能被改变的量
○1 数字常量。
例如 12,23.4,12.5f
12 = 23; //error
23.4 = 45.6; //error
○2 字符常量。
例如’\0’ , ’0’, ’A’, ’a’, ’\n’
对应的 ASCII 码值 0 48 65 97 10(换行)
‘0’ = ‘1’; //error,等同 48 = 49;
○3 字符串常量。”0”, ”abcd”
○4 宏定义。宏定义就是字符替换。
格式:#define 宏名 值
例如:#define PI 3.14
PI = 3.14159 //error,等同 3.14 = 3.14159;
○5 const 常量。
const int ca = 10;
ca = 20; //error
2、变量,能被修改的量。
定义:数据类型 变量名;
例如:int a = 0; a = 10;//ok
标识符命名规则:
1、以字母,下划线_,和数字组成
2、只能以字母或下划线开头
3、不能使用关键字
4、区分大小写(大小写敏感) 合法的标识符:abc,a1,_a,a_b,A,Float。
非法的标识符:1a,a*b,float。
3、数据类型。char short int(整数默认) long long long float double(小数默认)
占用的字节数 1 2 2/4(4 个为主) 4 8 4 8
char 类型的取值范围 -128~127;
unsigned char 类型的取值范围 0~255;
char 类似是 mini 的整型
char ch = ‘a’;
printf(“%c,%d\n”,ch,ch); //输出: a,97
printf(“%c,%d\n”,98,98); //输出:b,98
常量:不能修改的值
1.数字常量,例如 10,12.5,1.25*10^1(错误),1.25e1(考试)
2.字符常量,字符用''包括起来,例如'\0','\n','0','A','a' (计算机保存的是字符的编码)
0 换行 48,65,97 需要记忆
注意,字符只能保护一个字母或者数字或者符号.'ab'是错误的写法
3.字符串常量,字符串用""包括起来.例如"abc"
4.宏,它就是一个字符替换. #define 宏名 替换的内容
5.const 常量:把变量变为只读
变量:可以修改的值.先定义后使用
类型 变量名;
有符号数:标准规定最高位表示符号,0为正数,1为负数
整数(默认有符号signed, unsigned无符号):char ,short ,int(默认) ,long,long long
1 2 4 4 8
1字节最多表示256中不同的状态
char的取值范围:-128~127
unsigned char 的取值范围:不包含负数,所有的都为正数(包含0),0~255
short:万级别;int,long:十亿级别;long long:能解决地球上的所有数据正数二进制:直接写
负数二进制:绝对值取反+1(一定要记住)
20 :0001 0100
-20:1110 1100
127:0111 1111
-128:1000 0000->0111 1111->1000 0000
-1:0000 0001->1111 1110->1111 1111 (全1)
根据二进制计算数值:1.看是否为有符号数,如果是无符号数全部值相加;
如果是有符号数,首先看符号位,符号位是0,则全部值相加;符号位是1,则为负数且绝对值为取反+1
无符号: 1000 0000->128
有符号: 1111 0101->-0000 1011->-11
有符号: 0010 0101->37
小数:float,double(默认)
4 8
#include <stdio.h>
int main()
{
unsigned char a = 128;//1000 0000
char b = 128;//1000 0000->-0111 1111->-1000 0000->-128
printf("%d,%d\n",a,b);
// char a = 127 + 1;//0111 1111 +1 ->1000 0000
//printf("%d\n",a);
//printf("%d,%d\n",sizeof(1),sizeof(12.3));
// int a = 12.3;
//for (char a = 0; a < 128; a++)//a:-128~127
//{
// printf("%d\n",a);
//}
// int a;//定义一个int的变量a
//int b = 10;//定义一个int的变量b并初始化为10
return 0;
}
/*
int main()
{
int a = 10;
printf("%d\n",a);//读a
a = 20;//写a
printf("%d\n", a);
const int ca = 10;//只读
printf("%d\n",ca);
//ca = 20;//error
return 0;
}
*/
/*
#define PI 3.1415926 //定义一个宏
int main()
{
//PI = 4;//3.1415926 = 4;
double r = 5;//半径
double c = 2 * PI * r;//double c = 2 * 3.14 * r;
double s = PI * r * r;//double s = 3.14 * r * r;
// printf("%c", '\a');//%c:输出一个字符
//printf("%d,%d,%d,%d,%d\n",'\0','\n','0','A','a');
// 'a' = 100;//error 97 = 100;
//12.5 = 12.3;//error
//10 = 100;//error
//1e8;//10的8次方,
//1e-6;//10的-6次方
// int a = 10;
//a = 100;//ok
//'a' = 'b';//97 = 98;
//int a = 10;
//int b = 20;
//a = b;
return 0;
}
*/