数据: 常量,变量。常量:整型:
基本整型: int a;
长整型: long (int) a ;
短。。: short;
无符号整型: unsigned short a ;
unsigned long a;
unsigned int a ;
实型: 单精度:float
双 :double
长双 : long double字符: char:
枚举:
数组: int a[];
char name [];结构体:
struct :struct date
{
int year;
int month;
int day;
};struct date d;
共用体: union : union
{
int single;
char spouseName [20];
struct date divorcedDay;
}married;
sizeof (): 计算数据类型的所占字节数%:取余数算术运算顺序和数学一样
#include <stdio.h>
int main()
{
int x = 0;
int b0 = 0;
int b1 = 0;
int b2 = 0;
int sum = 0;
x = 183 ;
b0 = x % 10;
x /= 10;
b1 = x % 10;
x /= 10;
b2 = x % 10;
sum = b0 + b1 +b2;
printf("%d,%d,%d,%d\n",b2,b1,b0,sum);
return 0;
}
[root@localhost test]# vim yunsuan.c
[root@localhost test]# gcc yunsuan.c
[root@localhost test]# ./a.out
1,8,3,12
自增运算: n++,与++n的区别;
#include <stdio.h>
int main()
{
int n = 3;
int m = 0;
int j = 0;
m = n++;
j = ++n;
printf("m = %d,j = %d\n",m,j);
return 0 ;
}
[root@localhost test]# gcc zijia.c
[root@localhost test]# ./a.out
m = 3,j = 5
前者是作为后缀是先使用变量当前的值,然后对其进行+1操作。
后者是作为前缀是先进行+1操作,再使用+1后的值。
宏定义:
宏常量也叫符号常量:定义一个标识符号来代替一个常量:
#define PI 3.14159
const double PI = 3.14159 const 定义宏数据类型
自动类型转换:由低到高
float char,short
v v
double < long < unsigned< int
高 低
#include <stdio.h>
int main()
{
int n = 256;
float f = 3.6;
double d = 2.5;
n = f; // f 不能自动转化成int型,只能把3.6 赋值给n,n输出为3
f = n; // n 自动转化为 double 3.000000 赋值f
d = f; // f ==3.000000赋值d
printf("n = %d\n",n);
printf("f = %f\n",f);
printf("d = %f\n",d);
return 0 ;
}
[root@localhost test]# gcc zizhuan.c
[root@localhost test]# ./a.out
n = 3
f = 3.000000
d = 3.000000
强制类型转换(强转):
#include <stdio.h>
int main()
{
int m = 5;
printf("m/2 = %d\n",m/2);
printf("(float)(m/2) = %f\n",(float)(m/2));
printf("(float)m/2 = %f\n",(float)m/2);
printf("m = %d\n", m);
return 0 ;
}
[root@localhost test]# vim qiangzhuan.c
[root@localhost test]# gcc qiangzhuan.c
[root@localhost test]# ./a.out
m/2 = 2
(float)(m/2) = 2.000000
(float)m/2 = 2.500000
m = 5