~ --按位取反,在二进制中,原来的1变为0,0变为1,得到补码
原码:直接按照正负写出的二进制序列
反码:原码的符号位不变,其他位按位取反得到
补码:反码加一得到
int a=0;
int b=~a;//b是有符号的整形,其二进位最左边一个数为0为正数,为1是负数
printf("%d\n",b);//打印的是这个数的原码
int a = 10;
int b = a++;//两个加号放于a后面,叫
后置加加:(加加:将数加一)
printf("a=%d b=%d\n", a, b);
此式中,先把a的值给b,那么a即为b的值即打印出的b为a的值,而不是a++的值
在让a++那么打印出的a就为加加完的值
前置加加则为先加加再使用,如上式将变为将b和a的值为a++的值,而不是a的值
a––与加加使用向同
强制类型转换:(类型)
列:int a=(int)3.14--()内的为强制转换的类型。
打印小数用%f
C语言与数学语言不通的符号:
真-非0
假-0
&&-逻辑与
&&-判断真与假,真打印为1,假打印为0
列:
int a = 6;
int b = 4;
int c = a && b;
printf("c=%d\n", c);
A和b全为真数,时打印出的数为真数,用1表示
如果a和b中有一个为假数即为0时,那么打印出的即为零,表示假数
II--逻辑或
A和b全为假数时打印出的数为假数用0表示,如果a和b中有任意一个真数,那么打印出的数为真数用1来表示
int a = 20;
int b = 30;
int max = 0;
max = (a > b ? a : b);此处?为三目操作符,
printf("max=%d\n", max);
此式子可求两者之间的最大值
int定义的变量有符号
unsigned int --无符号数
struct--结构体关键字
union--联合体
关键字不能与定义一样
typedef--类型重定义:
typedef unsigned int u--意为将unsigned int重新定义为u,即U代表这一类型的函数名
unsigned int num1=20;
u num2=30;即为这两个函数(num1和2)为同一类型函数(类型重命名)
static意思是静态变量static指修饰符,可以用来修饰变量,也可以用来修饰函数。如果是在函数外面定义的,那么static说明的变量可以在当前c程序文件中使用。如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化。
static修饰局部变量的生命周期变长
extern-声明外部符号
static修饰全局变量,改变了变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就没法再使用
#define MAX 100--定义标识符常量①
#define MAX(X,Y) (X>Y?X:Y)
②:这个(X>Y?X:Y)会替换MAX(X,Y),也就是(X>Y?X:Y)会求X,Y中的最大值
int a = 10;
int b = 20;
//函数形式:
int max = MAX(a, b);
printf("max=%d\n", max);
宏的方式:
max = MAX(a, b);(与上面的形式相同,即求a,b中的最大值)
printf("max=%d\n", max);
指针:
用来存放地址的叫指针变量,这个地址是别人的,指针变量的类型表示为[(这一数据类型) *]
:
int a=10;--在内存里创建了一个变量,取名为a,这一块空间有自己的地址。
int *p=&a;--创建了p这一变量,存放a的地址
//printf("%p\n",p);
*p=20;--*p其实就是a,*p=20其实就是把20放到了a里面去
*--解引用操作符
指针大小在32位为4个字节,在64位平台有8个字节
标签:打印,变量,int,大神,printf,C语言,--,小白,max From: https://blog.51cto.com/u_16214964/7054004