正常加法:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int num = num1 + num2;
printf("%d\n", num);
return 0;
}
函数加法:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int num = Add(num1, num2);
printf("%d\n", num);
return 0;
}
数组 - 一组相同类型的元素的集合
10个整形1-10存起来
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
while (i < 10)
{
printf("%d/n",arr[i]);
i++;
//char ch[5] = { 'a','b','c' };//不完全初始化,剩余的默认为0
}
return 0;
}
操作符:
算数操作符 + - * / %
int main()
{
int a = 9 / 2;取值
float b = 9 / 2.0;取小数
int c = 9 % 2;//%取模(余)
printf("%d\n", c);
printf("%f\n", b);
printf("%d\n", a);
return 0;
}
移动操作符:>>
int main()
{
int a = 4;
int b = a << 1;//左移操作符 --移动的是二进制位
printf("%d\n", b);
return 0;
}
位操作符:
& 按位与
| 按位或
^ 按位异或
赋值操作符
int a = 2;
a = a + 5//也可以 a += 5
a = a - 3//也可以 a -= 3
a = a % 3//也可以 a %= 3
a+b:
有两个操作数(a b ) 双目操作符
单目操作符:只有一个操作数
!:逻辑反操作
int main()
{
int a = 10;
printf("%d\n", !a);//0表示假,非0表示真 !:就是把假的变成真的 真的变成假的 所以A=10时是真 用了!变成了假
if(a)
{
//如果A为真,做事
}
if(!a)
{
//如果A为假,做事
}
return 0;
}
— :就是负号
sizeof:操作数的类型或者变量长度(以字节为单位)
int main()
{
int num[10] = { 0 };
printf("%d\n", sizeof(num));//计算的数组的总大小,单位是字节
printf("%d\n", sizeof(num[1]));
int sz = sizeof(num) / sizeof(num[1]);
printf("%d\n", sz);
return 0;
}
~:按(二进制)位取反 把所有二进制位中数学,1变成0,0变成1
整数在内存中存贮的是补码~
符号位是第一位
一个整数的二进制表示有3种:
原码:二进制
反码:符号位不变 其他按位取反
补码:反码+1
正整数
原码,反码,补码相同
int main()
{
int a = 0;
printf("%d\n", ~a);
{
}
return 0;
}
前置++ : 先++,后使用
int main()
{
int a = 10;
int b = ++a;
printf("%d\n", b);
printf("%d\n", a);
return 0;
}
后置++ :先使用,后++
int main()
{
int a = 10;
int b = a++;
printf("%d\n",b);
printf("%d\n",a);
return 0;
}
(类型):强制类型转换
int main()
{
int a = (int)3.14;//强制类型转换
printf("%d\n", a);
return 0;
}
&& :逻辑与 两个为真 才是真 一个是假 就是假
int main()
{
int a = 5;
int b = 12;
int c = a && b;
printf("%d\n", c);
结果是1
return 0;
}
|| :逻辑或 一个为真 就是真
int main()
{
int a = 5;
int b = 0;
int c = a || b;
printf("%d\n", c);
//结果是1
return 0;
}
条件操作符(三目操作符):exp1?exp2:exp3
exp1 成立, exp2计算,整个表达式的结果是:exp2的结果
exp1 不成立, exp3计算,整个表达式的结果是:exp3的结果
int main()
{
int a = 102;
int b = 501;
int max = 0;
max = a > b ? a : b;
printf("%d\n", max);
//结果是501
return 0;
}
逗号表达式:逗号隔开的一串表达式
逗号表达式,是从左往右计算的
int main()
{
int a = 10;
int b = 5;
int c = 3;
int d = (a = b - c, b = a - c, c = a + b);
//答案是1
printf("%d\n", d);
return 0;
}
[]下标引用操作符
()函数调用操作符
int main()
{
int num[10] = { 1,2,3,4,5,6,7,8,9,10 };//[]就是下表引用操作符
printf("%d\n", num[6]);
printf("hh\n");//调用函数的时候,函数名后边的()就是函数调用的操作符
return 0;
}
C语言提供的关键字
1.C语言提供的,不能自己创建关键字
2.关键字不能做变量名比如:int char 就是不行的 变量名不能做关键字
int a = 10; 自动创建,自动销毁的
auto省略掉了 原本是 auto int a = 10;
char 字符类型 const 常变量 continue继续 default默认 double双精度
enum枚举 extern 是用来申明外部符号的 float单精度 long 长整型
register 寄存器关键字 return返回 short短整型 signed 有符号的(10 -20)
sizeof求大小 static静态的 typedef类型定义 union 联合体(共用体)void 无(空)
volatile(后期才学)while循环
define 不是关键字 是预处理指令 include 不是关键字 是预处理指令
计算机中 数据可以存储在: 内存 硬盘 网盘 高速缓存 寄存器(越后面越快 也空间越小 造价越高)
int main()
{
//大量且频繁被使用的数据,可以放在寄存器中,提升效率!
register int a = 10;//建议a的值存放在寄存器中
return 0;
}