#include<stdio.h>
int Max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
int main()
{
int num1 = 10;
int num2 = 20;
int max = 0;
max = Max(num1, num2);
printf("max = %d", max);
return 0;
}
~ 按位(二进制位)取反:1010 -> 0101
源码、反码、补码
只要是整数,内存中储存的都是二进制的补码
正数 -源码 补码 反码 相同
负数-
源码 -- 》 反码 --》 补码
源码:按照真负 写出的二进制序列
反码:源码的符号不变,其他位按位取反得到的
补码:反码+1
例:
-2
源码:1000000000000000000000010
反码:11111111111111111111111111101
补码:11111111111111111111111111110
负数在内存中存储的时候,存储的是二进制的补码
使用的,打印的是源码
a++ 后置++,先使用,后加加
++a 前置++,先++,再使用
*间接访问操作符(解引用操作符)
(类型) 强制类型转换
int a=3.14;//报错
int a=(int)3.14;
关系操作符:
< >= <= != ==
逻辑操作符:
0表示假 一切非0为真
&& 逻辑与 同为真为真
|| 逻辑或 只要有一个为真 就为真
条件操作符(三目操作符):
exp1?exp2:exp3;
int()
{
int a = 10;
int b = 20;
int max=0:
max=(a>b?a:b);
return 0;
}
逗号表达式:
exp1,exp2,exp3,....expN;
下标引用,函数调用和结构成员:
[] () . -> * &
int main()
{
int arr[10]={0};
arr[4];//下标引用操作符
return 0;
}
int Add(int x,int y)
{
int z=0;
z=x+y;
return z;
}
int main()
{
int a=10;
int b=20;
int sum=Add(a,b);//函数引用操作符
return 0;
}
常见关键字:
auto 自动 一般用在
int a = 10; --局部变量-自动变量 通常省略
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register(寄存器) rigister int a ;建议把a
return
short
signed int 定义的变量是有符号的 signed 通常被省略了
sizeof
static
struct 结构体关键字
switch
typedef
union 联合体 共用体
unsigned
void 无 空
volatile
while
计算机存储数据
1,寄存器
2,高速缓存
3,内存 访问速度高于硬盘
4,硬盘
CPU - 中央处理器
typedef - 类型定义-类型重定义
typedef unsigned int u_int; //unsigned int 被重命名
unsigned int num = 20;
u_int num2 = 20; 两个变量的类型是一样的
static - 修饰局部变量,局部变量的生命周期变长
static - 修饰全局变量,改变了变量的作用域-让静态的全局变量只能在自己所在的源文件内使用
static - 修饰函数,改变了函数的链接属性,正常的函数具有外部连接属性->内部连接属性
void test()
{
static int a =1;//加上static后a是一个静态的局部变量,a不再销毁
a++;
printf("a=%d",a);
}
int main()
{
int i = 0;
while (i<5)
{
test();
i++;
}
return 0;
}
无static:22222
有:23456
#define 定义常量和宏
1.定义标识符常量
2.可以定义宏-带参数
#include<stdio.h>
#define MAX 100
int main()
{
int a = MAX;
return 0;
}
//宏的定义
#define MAX(X,Y)(X>Y?X:Y)
int main()
{
int a = 10;
int b = 20;
int max = Max(a,b);
max = MAX(a,b);
printf("max = %d",max);
return 0;
}
指针:
内存:
基本单位为字bai节B,字节向上分别为KB、MB、GB、TB,每级为前一级的1024倍,比如1KB=1024B,1M=1024KB。
存储单位是一种计量单位。指在某一领域以一个特定量,或标准做为一个记录(计数)点。再以此点的某个倍数再去定义另一个点,而这个点的代名词就是计数单位或存储单位。如卡车的载重量是吨,也就是这辆卡车能存储货物的数量,吨就是它的单位量词。
扩展资料:
内存单位换算:
换算率约等于1000(1024),从大到小顺序为T、GB、MB(兆Zhao)、KB、B再小就是位了。1TB=1024GB 1GB=1024MB 1MB=1024KB 1KB=1024B 1B=8b。
计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示,它们之间的关系是:位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。
1 Byte(B) = 8 bit。
1 Kilo Byte(KB) = 1024B。
1 Mega Byte(MB) = 1024 KB。
1 Giga Byte (GB)= 1024 MB。
1 Tera Byte(TB)= 1024 GB。
1 Peta Byte(PB) = 1024 TB。
1 Exa Byte(EB) = 1024 PB。
1 Zetta Byte(ZB) = 1024 EB。
1Yotta Byte(YB)= 1024 ZB。
1 Bronto Byte(BB) = 1024 YB。
int main()
{
int a =10;//四个字节
int p=&a;//取地址
// printf("&p\n",p);
// printf("%p\n",&a);//地址为16进制
p = 20;//*-解引用操作符
printf("%d\n",a);
return 0;
}
指针变量:用来存放地址的变量
int main()
{
char ch =‘A‘;
char *p = &ch;
*p = ‘W‘;
printf("%c\n",ch);
return 0;
}
注:指针大小在32位平台是4个字节,64位平台是8个字节
原文:https://blog.51cto.com/15055741/2567832