选择语句
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>//引用头文件
int main()
{
int a = 0;//定义一个类型
printf("小迪师傅!\n");
printf("想吃西瓜吗?\n");
scanf("%d", &a);//接受a的值
if(a == 1){//判断是否等于1
printf("坚持你会吃上西瓜的!");
}else{
printf("你回家卖红薯去吧!");
}
//大括号可带可不带,带上代码更加清楚一点
return 0;
}
循环语句
#include <stdio.h>
int main()
{
int line = 0;
while(line < 10000){
printf("写代码%d\n",line);
line++;
}if(line > 10000){
printf("迎娶白富美!");
}
return 0;
}
函数
#include <stdio.h>
int Add(int x,int y)//定义了值的处理方法,因为最后的值为整型,所以Add也定义为整型
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d",&num1,&num2);//接受用户输入的数值
//int sum = num1 + num2;
//printf("%d",sum);
int sum = Add(num1,num2);//定义一个整型等于这个函数,Add为函数和他的两个值
printf("%d", sum);
return 0;
}
数组
一些相同类型元素的集合
#include <stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
char ch[6] = { 'a','b','c','d' };//不完全初始化,剩下的默认为0
int i = 0;
while (i < 10) {
printf("%d\n", arr[i]);
i++;
}
return 0;
}
操作符
算数操作符
+ - * / (除的时候两端都是整数,结果也是整数,有一端是小数结果也为小数) %(取模也叫取余) |
移位操作符
>> << 右移、左移,移动的是二进制位,一个字节为8个比特位 |
位操作符
&(按位与) |(按位或) ^(按位异或) |
赋值操作符
= += -=(复合赋值) (a=a-5等同于a-=5) *= /= &= ^= |= >>= <<= |
单目操作符 (a+b 有两个操作数,+叫做双目操作符)
! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度(以字节为单位) ~ 对一个数的二进制按位取反 -- 前置、后置-- ++ 前置、后置++ * 间接访问操作符(解引用操作符) (类型) 强制类型转换 |
~ 按二进制位取法,把所有二进制位中数字,1变成0,0变成1
#include <stdio.h>
int main()
{
int a = 0;
int b = ~a;//计算都是在内存中进行的,0的按位取反为全1,对应的原码为-1,所以结果为-1
printf("%d",b);
return 0;
}
整数在内存中存储的是补码
一个整数的二进制表示有三种,一个整数的最高位表示符号位,1表示负数,原、反、补的计算是针对负数的,正数的原反补都是一样的
-1 原码:100000000000000000000001 符号位不变,其他位取反得到反码
反码:1111111111111111111111111110 反码加一得到补码
补码 1111111111111111111111111111
关系操作符
> >= < <= != 用于测试不相等 == 用于测试相等 |
逻辑操作符
&& 逻辑与(两个都为真才为真) || 逻辑或(有一个为真即为真) |
条件操作符
exp1 ? exp2 : exp3 |
int main()
{
int a = 3;
int b = 5;
int max = a > b ? a : b;
printf("%d", max);
return 0;
}
逗号表达式
下标引用、函数调用和结构成员
[ ] ( ) . -> |