C语言基础(一)

语法结构: 类型 变量名
拓展:变量名属于标识符 标识符只能数字、字母和下划线命名 首字符不能是数字 不能和关键字相同

数据类型相关关键字
一、Char
Char 字符型 用char定义变量是字符型变量 占1字节 只能保存字符 不能保存字符串
有符号范围:-256255(-2^72^7-1)
无符号范围:0-1~2^8-1
二、Short
Short 短整形 用short定义的变量是短整形变量 占2个字节
有符号范围:-3276832767(-2^152^15-1)
无符号范围:0~2^16-1
三、Int
Int 整形 用int定义的变量为整形变量 在32位及以上的操作系统中占4个字节
有符号范围:-231~231-1
无符号范围:0~2^31-1
四、Long
Long长整形 用long定义的变量为长整形 在32位的操作系统中占4个字节 在64位操作系统中占8个字节
五、Float
Float 单精度浮点型(实数) 用float定义的为单浮点型实数,占4个字节
六、Double
Double 双精度浮点型(实数) 用double定义的为双浮点实数,占8个字节
七、Struct
Struct为结构体类型相关的关键字,可以用它来定义结构体类型,
八、Union
Union为共用体(联合体)相关的关键字
九、Enum
Enum为枚举类型相关的关键字
十、Signed
Signed 表示有符号意思 在定义char、整形(short、int、long)数据时用signed修饰,代表定义的数据类型是有符号的,可以保存正数,也可以保存负数 默认情况下signed可以省略不写
十一、Unsigned
Unsigned 表示无符号意思 在定义char、整形(short、int、long)数据时用unsigned修饰,代表定义的数据类型是无符号的,可以保存正数和0
十二、Void
Void为空类型关键字 不能定义变量 它是用来修饰函数的参数和返回值,代表函数没有参数或者没有返回值

存储相关关键字
一、Register
Register 代表寄存器,用register修饰的变量为寄存器变量 即在编译的时候告诉编译器,尽量将其存储空间分配在寄存器中。
注:
(1)定义的变量不一定放在寄存器中
(2)Cpu取数据的时候去寄存器中拿数据比在内存中要快
(3)因为寄存器比较宝贵,尽量不要在定义寄存器变量
(4)Register只能修饰字符型及整形,不能修饰浮点型
(5)因为register修饰的变量是存在寄存器中,所以不能对寄存器去地址
二、Static
Static 静态变量 可以修饰全局变量、函数 使用static修饰的变量,此变量保存在内存的静态空间中
三、Const
Const是常量意思 用const修饰的变量是不可修改的,不能修改它的值
四、Auto
Auto int a和int a 一样
五、Extem
Extern 外部,一般定义用于函数和全局变量

其他关键字
一、Sizeof
用来测量变量、数组占用的存储空间大下(字节数)
二、Typedef
重命名相关关键字 作用是给已有的类型,重新定义一个类型名,并没有创建一个新的类型
例如:typedef unsigned char ucahr;
三、Volatile
用volatile定义的变量,是易改变的,即告诉cpu每次用到volatile变量的时候,重新去内存中取保证每次得到的数据都是最新的,而不是寄存器的备份。

格式化输出字符
%d 十进制输出有符号整数
%ld十进制输出long有符号整数
%u 十进制输出无符号整数
%o 八进制输出整数
%x 十六进制输出整数
%f 输出float浮点数
%lf输出double型浮点数
%e输出指数形式的浮点数
%c 输出单个字符
%s 输出字符串
%p 输出指针值

类型转换
转换方式一:自动转换 遵循一定规则由编译器自动完成类型转换

转换方式二:强制类型转换 把表达式的运算结果强制转换成所需的数据类型
通过类型转换运算来实现 (类型说明符)(表达式)
注意:类型说明符必须加括号

算数运算符
运算符 描述 实例

  • 把两个操作数相加 A + B 将得到 30
  • 从第一个操作数中减去第二个操作数 A - B 将得到 -10
  • 把两个操作数相乘 A * B 将得到 200
    / 分子除以分母 B / A 将得到 2
    % 取模运算符,整除后的余数 B % A 将得到 0
    ++ 自增运算符,整数值增加 1 A++ 将得到 11
    – 自减运算符,整数值减少 1 A-- 将得到 9
    关系运算符
    运算符 描述 实例
    == 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
    != 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。

检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。
逻辑运算符
运算符 描述 实例
&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。
位运算符
运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~ 二进制补码运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0。 (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。
赋值运算符
下表列出了 C 语言支持的赋值运算符:
运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2

= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2
杂项运算符 ↦ sizeof & 三元
下表列出了 C 语言支持的其他一些重要的运算符,包括 sizeof 和 ? :。
运算符 描述 实例
sizeof() 返回变量的大小。 sizeof(a) 将返回 4,其中 a 是整数。
& 返回变量的地址。 &a; 将给出变量的实际地址。

  • 指向一个变量。 a; 将指向一个变量。
    ? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y
    C 中的运算符优先级
    运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。
    例如 x = 7 + 3 * 2,在这里,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3
    2,然后再加上 7。
    下表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。
    类别  运算符  结合性 
    后缀  () [] -> . ++ - -   从左到右 
    一元  + - ! ~ ++ - - (type)* & sizeof  从右到左 
    乘除  * / %  从左到右 
    加减  + -  从左到右 
    移位  << >>  从左到右 
    关系  < <= > >=  从左到右 
    相等  == !=  从左到右 
    位与 AND  &  从左到右 
    位异或 XOR  ^  从左到右 
    位或 OR  |  从左到右 
    逻辑与 AND  &&  从左到右 
    逻辑或 OR  ||  从左到右 
    条件  ?:  从右到左 
    赋值  = += -= *= /= %=>>= <<= &= ^= |=  从右到左 
    逗号  ,  从左到右

自增自减运算符
(1)将++或者–放在变量后面
注意:先使用后自增或自减
(2)将++或者–放在变量前面
注意:先自增或自减后使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值