整型:signed(short、int、long)
unsinged(short、int、long)
1.1. 逻辑类型:逻辑真(true)、逻辑假(false)
2.1 .整数类型
1.char:占一个字节空间,-128~127或0~255
signed char:-128~127
unsigned char:0~255
使用char数据类型需要的变量需要特别注意,防止数据超出值域
char c1 =128;//出错,数据越界(-128)
char c1=129;//出错,数据越界(127)
unsigned char c2=-1;//出错,数据越界(255)
#include<stdio.h>
int main()
{
unsigned char c=-1;
printf("%d %c \n",c,c);
return 0;
}
输出为
//出错,数据越界(255)这里以补码的形式输出
2.short:占两个字节
signed short:-2147483648~2147483647
unsigned short:0~4294967295
3.int:占四个字节
signed int:-2147483648~2147483647
unsigned int:0~4294967295
2.2.long:占四个字节空间
2.3浮点类型(精度6)
包括float和double
2.4bool类型
bool:0(false)和非0(ture) ,占一个字节空间
#include<stdio.h >
#include<stdbool.h>
int main()
{
bool a;
a=1;
a=-1;
a=5;
if(a)
{
printf("ture,%d \n",a);
}
else
{
printf("faulse,%d \n",a);
}
}
//从上往下运算,输出为1
//这里打印各字节长度
3.常量
3.1整形常量
常量是指在程序运行期间其数值不发生变化的数据。整形常量通常简称为整数。
整数可以是十进制数,八进制数和十六进制数,例如:
十进制的数值3356 可以有以下两种不同的表达方式
八进制数:06434
十六进制数:0xd1c
3.2浮点常量(实数)
一般含有小数部分。
在C语言中,实数只有十进制的实数,分为单精度和双精度。实数有两种表示方式,即一般形式和指数形式。
例如:3.5、-12.5、3.1415926
3.3指数常量
指数形式的实数一般是有尾数部分、字母e或E和指数部分组成。当一个实数的符号为正号时,可以省略不写,其表示的一般形式如下:
1.176e+10表示1.176*10的10次方
-3.5789e-8表示-3.5789*10的-8次方
#include<stdio.h>
int main()
{
float a=0.13456e+10;
printf("%f %e \n",a,a);
return 0;
}
3.4字符常量
字符常量是指一个单一字符,其表现形式是由两个单引导号包括的一个字符
‘A’、‘a’、‘Q’、‘0’、‘9’、‘+’、‘?’都是字符常量
在C语言中,字符常量看作一个字节的正整数。
例如:
char a,b,c,d;
a='F'; //把70赋值给a
b='A'+2; //b存放的是‘c’字符
c=' '+'B'; //c存放的是‘b’字符
d=‘b’-‘32’ //d存放的是‘B’字符
他们分别相当鱼下列运算:
a=70;
b=65+2;
c=32+66;
d=97-32;
#include<stdio.h>
int main()
{
char c1,c2;
c1='A';
c2='A'+' ';
c2='A'+' '+2;
printf("%c %c \n",c1,c2);
return 0;
}
3.5字符串常量
所谓字符串常量是指用双引号括起来的一串字符来表示的数据(字符串以‘\o'结尾)。
“9”=’9‘+’\0‘
“Hello”、"Studnent"、“Linux”、“9”、“张三”
#include<stdio.h>
int main()
{
char arr[]={"abc"};
char arr2[]={'a','b','c','\0'};
printf ("%d %d\n",sizeof(arr),sizeof(arr2));
printf("%s %s\n",arr,arr2);
return 0;
}
3.6标识常量
所谓标识常量是指用标识符替代常量使用的一种常量,其名称通常是一个标识符。
表示常量也叫符号常量,一般用大写英文字母的标识符。在使用之前必须预先定义,说明形式为:宏
#include<stdio.h>
#define ONE 1
#define TWO ONE+ONE
int main()
{
int a=10,b=20,c;
c=ONE+TWO*b+a; //1+2*20+10=51 //1+1+1*20+10=32
printf("%d \n",c);
return 0;
}
输出为32
#define ((ONE)+(ONE)) //1+2*20+10=51
输出为51