初识C语言2

数组

一组相同类型元素的集合,下标从0开始

int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 
arr[2] = 3

int i  = 0;
while (i<10)
{
printf('%d', arr[i]);
i++;
}
倒序输出:i = 9    i--
char ch[4]; = {'a','b','c','d'};
ch[1] = 'b'

操作符

算数操作符+ - * / %
移位操作符右移操作符>> 左移操作符<< // 操作的是二进制数
位操作符& 按2进制位与 ^ 按2进制位异或 | 按2进制位或
赋值操作符= += -= *= /= &= ^= |= >>= <<=
单目操作符:只有一个操作数

! 逻辑反操作
-    负值
+   正值
&   取地址
sizeof   操作数的类型长度,单位字节byte
~   对一个数的二进制按位取反

//整数再内存中存储的时候,存储的是二进制
//一个整数的二进制表示有三种形式:原码 反码 补码
//正的整数:原码 反码 补码 相同
//负的整数:原码 反码 补码是计算的
//有符号的整数。最高位为0,表示正数
//有符号的整数。最高位为1,表示负数

int a = 1; // 4byte = 32bit
//00000000000000000000000000000001----原反补码
int a = -1; // 4byte = 32bit
//10000000000000000000000000000001----原码
//1111111111111111111111111111111111110----反码(原码的符号位不变,其他位取反)
//1111111111111111111111111111111111111----补码(反码的二进制序列+1)
//内存中存储整数的时候,存储的是二进制的补码
//计算的时候采用的也是补码
--      前置、后置--
++      前置、后置++
*      间接访问操作符(解引用操作符)
(类型)    强制类型转换

关系操作符

>
>=
<
<=
!=  用于测试“不相等”
== 

逻辑操作符

&&   逻辑与--并且
||      逻辑或--或者

条件操作符(三目操作符)

exp1 ? exp2 : exp3

逗号表达式

exp1, exp2, exp3, …expN

逗号表达式从左向右计算,整个表达式结果是最后一个表达式的结果

下标引用、函数调用和结构成员

[]	 ()	 .	 ->

关键字

auto  break  case  char  const  continue  default  do  double else  enum 
extern float  for  goto  if  int  long  register   return  short  signed
 sizeof  static struct  switch  typedef union  unsigned  void  volatile  while

auto 自动 自动变量 = 局部变量 一般省略
break --停止,中断 用于循环,switch
continue --继续 用于循环
const 常属性
default —默认
do while
enum 枚举关键字
extern 声明外部符号
goto 语句 --跳转
register 寄存器
return 返回—用于函数
signed 有符号
sizeof 计算所占内存大小
static 静态的 用于变量…
struct 结构体关键字
switch语句
typedef 类型重定义
union 联合体,共用体
unsigned 无符号的
void 空
volatile --linux–易变的

关键字typedef:类型重命名

typedef unsigned int uint;

int main()
{
	unsigned int num = 100;
	uint num2 = 200;
	
	return 0;
}

寄存器是存储空间,一般集成再CPU上,和内存是不同的独立的存储空间
计算机的存储空间:
寄存器
高速缓存(cache)
内存
硬盘
网盘

关键字register:建议变量存放再寄存器中,编译器最终决定

static关键字:
1.修饰局部变量

void test()
{
	//static修饰局部变量:改变了变量的生命周期,但作用域不改变
	static int a = 1;
	//int a = 1;
	a++;
	printf("%d ", a);
}

 
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}

	return 0;
}

2.修饰全局变量

//默认一个全局变量具有[外部]链接属性
//而如果全局变量被static修饰,则这个全局变量只有内部链接属性,其他源文件无法链接到,也无法使用。

3.修饰函数

//函数具有外部连接属性的
//而如果函数被static修饰,则这个函数只有内部链接属性,其他源文件无法链接到,也无法使用。

define 定义常量和宏

#define NUM 100

#define MAX(X,Y)	(X>Y?X:Y)

int main()
{
	//printf("%d\n",	NUM);
	int a = 10;
	int b = 20;
	int c = MAX(a, b);
	printf("%d\n", c);
	
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值