%1f——double;%c——char;%p——&a;%s——char[ ]
求两个数的较大值
#include <stdio.h>
int main()
{
int num1=10;
int num2=20;
if (num1>num2)
printf("较大值是:%d\n",num1);
else
printf("较大值是:%d\n",num2);
return 0;
}
#include <stdio.h>
int Max(int x,int y)
{
if(x>=y)
return x;
else
return y;
}
int main(void)
{
int num1=10;
int num2=20;
int max=0;
max=Max(num1,num2);
printf("max=%d\n",max);
return 0;
}
~:按(二进制)位取反
#include <stdio.h>
int main(void)
{
int a=0;
int b=~a;
printf("%d\n",b);
return 0;
}
补码-1=反码 反码取反=原码(第一个1表示符号是负号,0是正号,在取反时不变)正数的原码、反码、补码相同
后置++:先使用它自己的值,再让自己的值+1
前置++:+1之后再使用,且自己已经+1
():强制类型转换符
int a=(int)3.14//把3.14(double)转换成了int
&&:逻辑与,只要有一个为假就输出0
||:逻辑或,只要有一个为真就输出1
exp1?exp2:exp3(三目/条件 操作符,exp1若为真则值为exp2,反之值为exp3)
关键字register,寄存器
register int a=10(建议把a=10存储到寄存器里面,具体是否存入是编译器判断的。存入到寄存器里的数据比存入到内存里的提取速度更快)
关键字typedef,类型重定义
typedef unsigned int u-int;
unsigned int num1=1;
u-int num2=2;
(num1,num2数据类型一样)
关键字static
1、修饰局部变量:生命周期变长
2、修饰全局变量:改变作用域,让静态的全局变量只能在所在的源文件内部使用
static int g-val=1;
3、修饰函数:改变了函数的链接属性,将外部链接属性改变为内部链接属性
static int Add(int x,int y)
关键字extern
声明外部符号
extern int Add(int,int);
extern int g-val;
关键字define指针
1、定义标识符常量
#define MAX 100
则MAX的值是100,中间不需要等号
2、定义宏
#define MAX(X,Y) (X>Y?X:Y)
(求X,Y的较大值)
指针变量(用来存放地址的变量)
指针大小在32位平台是4个字节,在64位平台是8个字节
eg1:
int a=10;
int* p=&a;//p的值是a的地址
printf(“%p\n”,&a);=printf(“%p\n”,p);
*p=20//*是解引用/间接访问 操作符
printf(“a=%d\n”,a); (输出结果是a=20)
eg2:
char ch=’w’;
char* pc=&ch;
*pc=’a’;
printf(“ch=%c\n”,ch); (输出结果是ch=a)
printf(“%d\n”,sizeof(pc));(输出结果是4or8)
struct(复杂对象->创建结构体类型) .(结构成员访问操作符)
strcpy
结构体变量.成员
结构体指针->成员