C基础

一、变量和类型

1.数字类型

char:1 Byte.-128 - +127 / 0 - 255

short:2 Byte.-32768 - +32767 / 0 - 65535

int:4 Byte.-21亿 - +21亿 / 0 - 42亿9千万

long:32位系统下 4 Byte / 64位系统下 8 Byte

long long:8 Byte

float:4 Byte.IEEE标准规定

double:8 Byte

2.字符串类型

C语言中没有字符串类型,使用字符数组表示字符串

3.数组类型

4.指针类型

二、常量

1.字面值常量

10、10.0、10.0f(float)、10L(long)、10u(unsigned int)、10uL、'a'(int)、"abc"(char[4])

2.const常量

3.#define宏定义

4.enum枚举:在C语言中enum和int是等价的

三、条件语句

1.if

   if、if else、if else if...

   圆括号中放一个表达式,表达式的值为真(非0),执行if代码块中的内容;为假,执行else代码块

2.switch(不推荐使用)

   break不能丢

   case语句只能用整数

   switch不能表示更复杂的条件

四、循环语句

1.while

   圆括号中放一个表达式,表达式为真,执行循环体,为假,跳出循环

2.for

   圆括号中三个表达式(1.初始化循环变量;2.循环条件;3.更新循环变量)

3.do while(不推荐使用)

4.goto(更不推荐使用,源于汇编语言)

五、数组(批量创建相同类型的变量)

   int arr[]={0};

   取下标,从0开始,到size-1结束

   如果下表越界,则内存访问越界,是未定义行为

   二维数组也是一维数组,只不过每个元素也是一个一维数组

   求数组长度:size=sizsof(arr)/sizeof(arr[0])

六、函数(一次定义,多次调用)

   参数:形参是实参的一份拷贝。使用指针让函数内部对函数外部的变量产生影响

   返回值:可以是void(没有)

   递归:在不允许使用循环、变量下

七、运算符

1.算术运算符:0不能作为除数

2.移位运算符:

   <<:左移一位,相当于乘以2

   >>:右移一位,相当于除以2

   移负数位或者比较大的位,是未定义行为

3.位运算符:&、|、^、~

4.比较运算符:<、>、<=、>=、==、!=

5.逻辑运算符:&&、||、!

   短路求值:&&只要左侧表达式为假,整个表达式的值为假

                     ||只要左侧表达式为真,整个表达式的值为真

6.单目运算符:sizeof(编译器求值)、++/--、+/-、(类型)

   short强转成int一般没问题,int强转成short可能发生截断,此时数据已经出错

7.条件运算符:( ? : )

8.运算符优先级:加()更明显

9.隐式类型转换

10.表达式求值顺序:一个表达式中对同一个变量修改多次,也是未定义行为

八、结构体(自定制类型)

   ->  成员访问操作

   结构体传参:用传指针的方式传参

九、指针

1.内存、冯诺依曼体系结构

2.用一个变量存放地址,指针变量

3.信息(1.房间号;2.房间有多大)

4.void*:只知道房间号,不知道房间大小

  NULL(空指针):代指非法内存,保存为0号地址的指针

5.*(解引用操作):根据地址找到对应的内存的值

6.&(取地址操作):获取到变量的房间号

7.+/-(整数操作):跳过一个元素

8.指针相减:大部分情况没有意义。在同一个相同类型的连续空间才有意义

9.数组指针(是指针)和指针数组(是数组)

10.数组和指针关系:

   数组在一定情况下能隐式转化成指针(直接取数组名参与运算)

   指针能当成数组来用([])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值