单目 *** 作符:
!(逻辑反 *** 作符)(输出相反逻辑)(数学中的非)
-(负数 *** 作符)
+(正数 *** 作符)
&(取地址 *** 作符)
sizeof( *** 作数的类型长度 *** 作)
~(对一个数的二进制按位取反 *** 作符)
--/++前置(先使用原来的值再进行+1),--/++后置(先+1再使用+1后的值)
(数据类型)数据变量(强制类型转换 *** 作符)
正数:原码反码补码一样(正数按位取反为本身+1后的负数)
负数:原码与反码相反,符号位(第一位不变)补码为反码+1(负数在内存中以补码形式存在)(负数的取反为本身+1后的绝对值)
关系 *** 作符
>(大于),>=(大等于),
逻辑 *** 作符
&&(逻辑与),||(逻辑或)
条件 *** 作符
exp1 ? exp2 : exp3;
int a = 2;
int b = 3;
int max = 0;
max = a > b ? a : b;
printf("%d", max);
逗号表达式
exp1,exp2,exp3......;(结果为最后一个表达式的结果)
下标引用 *** 作符
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
a[5];中的[]
函数调用 *** 作符
printf()中的()
typedef:类型定义
typedef:顾名思义是类型定义,这里应该理解为类型重命名。
//将unsigned int 重命名为u_int, 所以u_int也是一个类型名
typedef unsigned int u_int;
//(大名:李四——>小名:小四)
int main()
{
unsigned int num = 100;
u_int num2 = 100;//与上面一模一样的意思
return 0;
}
static:静态的
用法:
1.Static修饰局部变量
2.Static修饰全局变量
3.Static修饰函数
void test()
{
int a = 1;
a++;
printf("%dn", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
打印结果 全是2
void test()
{
static int a = 1;
a++;
printf("%dn", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
打印结果 2到11
static修饰全局变量,是的这个全局变量
只能在自己所在的源文件(.c)内部可
以使用!
其他源文件不能使用!
全局变量,在其他源文件内部可以被使
用,是因为全局变量具有外部链接属性.
但被static修饰之后,就变成了内部链接
属性,其他源文件就不能链接到这个静
态的全局变量了!
static修饰函数,使得函数只能在自己的
所在的源文件内部使用,不能在其他源
文件内部使用。
本质上:static是将函数的外部链接数学
变成了内部链接属性(和static修饰全局
变量一样)
//define 是一个预处理指令
//1.define定义符号
#define MAX 1000
int main()
{
printf("%dn", MAX);
return 0;
}
//2.define定义宏
宏在C语言中是一段有名称的代码片段。无论何时使用到这个宏,宏的内容都会
被这段代码替换掉。
#define 代码名称 代码内容
#define ADD(X,Y) X+Y
#define Printf printf("Hello world!n")
int main()
{
Printf;
int sum = 5*ADD(5, 4);
printf("%dn", sum);
return 0;
}
输出hello world和29(29=5*5+4)
#define ADD(X,Y) ((X)+(Y))
#define Printf printf("Hello world!n")
int main()
{
Printf;
int sum = 5*ADD(5, 4);
printf("%dn", sum);
return 0;
}
输出hello world 和45(45=5*(5+4)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)