变量与常量
/*
* 常量:符号常量和字面常量
* 变量:变量名,值,类型
* 关键字
*/
int main(void )
{
printf("%f\n",3.14159);
//变量的定义;
int a = 23;
printf("a:%d\n",a);
return 0;
}
/*
* 整型
* 整型常量: 123 0123 0x123
* 整型变量:short int long long long
* int unsigned int
* 123 123u/U
* 123l/L
*/
int main(void)
{
//检测int占据几个内存单元(几个字节)
printf("%lu\n",sizeof(int));
return 0;
}
浮点类型
/*
* 浮点类型
* 常量 3.4 3.4e1 3.4E2 3.4E-2 3.4f/F
* 变量 float high = 2.3 double
* 范围
*/
int main(void)
{
printf("%.7lf\n",2.0-1.9);
float f = 2.3;
return 0;
}
字符类型
/*
字符类型: char
常量 ascII ‘0’-‘9’ ‘a’-'z' 'A'-'Z'
转义字符 ‘\n’,'\t'、'\','\'','\"','\r','\\'
表示进制的转义:‘\xhh’,'\ddd'
变量
*/
#include
int main(void)
{
char c1 = 'a';//区分字符0和整数0
printf("\"%c\"\n",c1);//"a"
return 0;
}
//10+'a'-3.1f+5/0.5 double
//'a'+'b' int
//1+3 int
#include
int main(void)
{
int i = (int)3.4;
printf("%d\n",i);
return 0;
}
运算符
//算术运算符+ - * / %
//关系运算符> >= < <= == != 关系运算符的结果用0代替假,用非0代替真
/*
逻辑运算符 && || !
位运算符 >> << ~ | & ^
赋值运算符 = += *= >>=....
条件运算符 ?:
逗号运算符 ,,,
指针运算符 * &
求字节运算符sizeof
强制类型转换运算符(类型)
其他:[] () . ->
*/
#include
int main(void)
{
//"/"左右两边若都是整型或整型相关类型,除的结果是整型
float f = 33*1.0f/5;//(float)33/5
printf("%f\n",f);
//%取余,整型取余,浮点型不取余
// int i = 3.3%5;
// printf("%d\n",i);
int a = 20,b=30;
printf("%d\n",a>b);
int zhangsan = 88;
printf("%d\n",zhangsan>=80 && zhangsan < 90);
return 0;
}
自加++,自减–
/*
* 自加++,自减--运算符
* int i = 5;
* ++i i++
*/
int main()
{
int i=5;
int j;
j = i++;
printf("后加:i=%d,j=%d\n",i,j);//i=6 j=5
j = ++i;
printf("前加:i=%d,j=%d\n",i,j);//i=6 j=6
printf(78>=60?"及格\n":"不及格\n");
//逗号表达式,顺序求值运算符
printf("%d\n",((20>30),(30<20),('a'>0)));
return 0;
}
字节序
#include
/*
* 字节序
* 大端模式、小端模式
* 大端模式:数据的高字节放在内存的低地址端,数据的低字节放在内存的高地址端
* 小端模式:数据的高字节放在内存的高地址端,数据的低字节放在内存的低地址端
* 常用的模式
* 网络字节序:TCP/IP协议规定网络字节序是大端模式.
*
* 长的数据类型给短的数据类型赋值,截取长数据类型的低字节,不考虑符号
* 短数据类型给长数据类型赋值,需要考虑有符号还是无符号
* 若赋值对象是有符号数,则符号扩展
* 若赋值对象是无符号数,则补0
*
* 扩展赋值运算符 +=
*/
int main(void)
{
int i = 97;
char c = i;
printf("%c\n",c);
printf("%lu\n",sizeof(c));
i = 0x12348976;
short s = i;//0x8976
printf("%d\n",s);
/* unsigned char c = -1;
int i = c;
printf("%x\n",i);
*/
int i = 5;
// i += 3;//i = i+(3);
i *= 1+2;//i = i*1+2 i = i*(1+2)
printf("%d\n",i);
return 0;
}
检测数据类型占据字节数
//检测数据类型占据字节数
#include
int main(void)
{
printf("short int字节数为:%lu\n",sizeof(short int));
printf("int字节数为:%lu\n",sizeof(int));
printf("long int字节数为:%lu\n",sizeof(long int));
printf("char字节数为:%lu\n",sizeof(char));
printf("float字节数为:%lu\n",sizeof(float));
printf("double字节数为:%lu\n",sizeof(double));
printf("long double字节数为:%lu\n",sizeof(long double));
return 0;
}
输入输出语句
// 输入输出语句
int main(void)
{
int a,b;
printf("请输入两个数");
scanf("%d,%d",&a,&b);//scanf中不能出现\n换行符
printf("输出内容:%d,%d\n",a,b);
return 0;
}
printf输出函数
#include//输入输出的函数如何使用。
/*
* printf("format"[,输出表列]);
* format: %格式说明 普通字符
* 格式字符:d 整型, f 单精度 ,lf 双精度 , c 字符,ld长整型 ,s 字符串
* h 短整型,x/X 16进制, o 8进制,u/U 无符号 e/E 科学计数
* %.2f限制输出小数位数
*/
int main(void)
{
// int i = 123456;
// printf("hello world%5daaa\n123456789012345\n",i);
float f = 123.456f;
printf("%-8.2f\n1234567890123456\n",f);
return 0;
}
scanf输入函数
/*
* scanf("format",地址表列)
* 输入结束后,按回车键结束。
* format : 格式字符 普通字符
* scanf("%d %d",&i,&j);//12 32
* scanf("%d%d",&i,&j);//12 32
* 格式字符连续没有其他字符,按空格键,回车键,tab键
* scanf("%d%c",&i,&j);//12a
*/
#include
int main()
{
int i;
//scanf("%d",&i);
scanf("请输入i值:%d",&i);
printf("%d\n",i);
return 0;
}