1.运算符
1)逻辑运算符
&& 与:全真则真,一假则假
|| 或:一真则真,全假则假
! 非:非真则假,非假则真
截断法则:
逻辑与运算中,&&符号前面的表达式结果为假,后面的表达式不执行
逻辑或运算中。||符号前面的表达式结果为真,后面的表达式不执行
例:
#include <stdio.h>
int main()
{
int a=5,b=6,c=7,d=8,m=2,n=2;
(m=a>b)&&(n=c>d);
printf("%d %d",m,n); //m=0 n=2
}
2)位运算符
&位与:全1则1,有0则0
|位或:有1则1,全0则0
^异或:相同为0,不同为1
~取反:1--->0 0--->1
<<左移:左移n位,右边补充n个0
>>右移:右移n位,最右边舍弃n位
计算机中,整数以二进制的补码形式存储
原码 | 反码 | 补码 | |
正数 | 相同 | 相同 | 相同 |
负数 | 相同 | 除符号位外,其他按位取反 | 反码+1 |
置1公式:a|(1<<n)
置0公式:a&(~(1<<n))
3)关系运算符
< > <= >= == !=
4)三目运算符(选择运算符)
表达式1?表达式2:表达式3;
5)赋值运算符
= += -= *= ^= /= %= ......
6)运算符优先级
单算移关与 异或逻条赋(同级运算符从左到右计算)
2.变量
定义格式
存储类型 数据类型 变量名
名字 | 字节大小 | |
int | 整型 | 4 |
char | 字符型 | 1 |
short | 短整型 | 2 |
long | 长整型 | 8 |
float | 单精度浮点型 | 4 |
double | 双精度浮点型 | 8 |
局部变量和全局变量的区别:
局部变量 | 全局变量 | |
定义位置 | 函数体内部 | 函数体外部 |
初值 | 未初始化,值是随机值 | 未初始化,值是0 |
存储位置 | 栈区 | 全局区 |
生命周期 | 同当前函数体共存亡 | 同整个程序共存亡 |
作用域 | 当前函数体内部 | 整个程序 |
3.常量
1)整形常量
八进制 十进制 十六进制
2)字符常量
字符 ' '
字符串" " \0为字符串结束标志
3)浮点型常量
float double
4)标识常量
#define 宏名 常量值/表达式/代码段
练习题
1)程序运行后输出的结果是(1)
#include <stdio.h>
#define SQR(X) X*X
void main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
2)程序运行后输出的结果是(55)
#include <stdio.h>
#define M 5
#define N M+M
void main()
{
int k;
k=N*N*5;
printf("%d\n",k);
}