美文网首页
c基础-标识符,关键字及数据类型转换

c基础-标识符,关键字及数据类型转换

作者: 小白中的小白丶 | 来源:发表于2019-03-23 19:09 被阅读0次

标识符

  • C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
  • C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。

关键字

  • 下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
关键字 说明
aut 声明自动变量
break 跳出当前循环
case 开关语句分支
char 声明字符型变量或函数返回值类型
const 声明只读变量
continue 结束当前循环,开始下一轮循环
default 开关语句中的"其它"分支
do 循环语句的循环体
double 声明双精度浮点型变量或函数返回值类型
else 条件语句否定分支(与 if 连用)
enum 声明枚举类型
extern 声明变量或函数是在其它文件或本文件的其他位置定义
float 声明浮点型变量或函数返回值类型
for 一种循环语句
goto 无条件跳转语句
if 条件语句
int 声明整型变量或函数
long 声明长整型变量或函数返回值类型
register 声明寄存器变量
return 子程序返回语句(可以带参数,也可不带参数)
short 声明短整型变量或函数
signed 声明有符号类型变量或函数
sizeof 计算数据类型或变量长度(即所占字节数)
static 声明静态变量
struct 声明结构体类型
switch 用于开关语句
typedef 用以给数据类型取别名
unsigned 声明无符号类型变量或函数
union 声明共用体类型
void 声明函数无返回值或无参数,声明无类型指针
volatile 说明变量在程序执行中可被隐含地改变
while 循环语句的循环条件

整数类型

char -128到127
unsigned char 0到255
signed char-128到127
int 2或4字节 与系统位数有关 -32768到32767或-2147483648到2147483647
unsighed int 0到4294967295
(描述int这个问题主要是想说在mysql不存int型的手机号是因为最大就是十位,无论是有符号还是无符号数。)
short 2字节 -32768到32767
unsigned short 2字节 0到65535
long 4字节 -2147483648到2147483647
long long 8字节

不同系统位数的存储大小差别

浮点类型

float 4
double 8
long double16

void类型

函数返回为空
  • 1.C中有各种函数都不返回值,或者可以说它们返回空,不返回值的函数的返回类型为空。例如,void exit(int status);
  • 2.函数参数为空例如 int rand(void);c中有各种函数不接受任何参数。不带参数的函数可以接受一个void。
  • 3.指针指向void 类型为void*的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc(size_tsize );返回指向void的指针,可以转换为任何数据类型。

数据类型

整数

  • 1.默认都是10进制
  • 2.以0开头为8进制,045,021.
  • 3.以0b开头为2进制,0b111
  • 4.以0x开头诶10进制,0x21adf.

小数

  • 1.2.3f。
  • 2.双精度常量2.3,默认为双精度

字符型常量

  • 1.用英文单引号括起来,可以有字符'a',也可以有转义字符'\n'、'\t'.。

字符串常量

  • 1.用英文双引号引起来,可以保存多个字符"abc"。

数据类型转换

C 语言中如果一个表达式中含有不同类型的常量和变量,在计算时,会将它们自动转换为同一种类型;在 C 语言中也可以对数据类型进行强制转换;

自动转换规则:

a)浮点数赋给整型,该浮点数小数被舍去;
b)整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;
3、强制类型转换形式: (类型说明符)(表达式)


自动转换的规则如下:

  1. 当参与运算的数据的类型不同时,编译系统会自动先将它们转换成同一类型,然后再进行运算。

但问题是转换的时候是谁转换成谁呢?转换的基本规则是“按数据长度增加的方向进行转换”,以保证精度不降低。比如 int 型数据和 long 型数据进行相加或相减运算时,系统会先将 int 型数据转换成 long 型,然后再进行运算。这样的话运算结果的精度就不会降低。

long 是“大水桶”,int 是“小水桶”。int 能存放的,long 肯定能存放;而 long 能存放的,int 不一定能存放。

  1. 所有的浮点运算都是以双精度进行的。

在运算时,程序中所有的 float 型数据全部都会先转换成 double 型。即使只有一个 float 型数据,也会先转换成 double 型,然后再进行运算。为什么要这样呢?因为 CPU 在运算的时候有“字节对齐”的要求,这样运算的速度是最快的。这个现在先不管,如果以后有机会学习汇编的话你就知道原因了。

  1. char 型和 short 型数据参与运算时,必须先转换成 int 型。这也是涉及 CPU 的运行原理的,记住就行了。

  2. 有符号整型和无符号整型混合运算时,有符号型要转换成无符号型,运算的结果是无符号的。这条规则经常使人纠结,可以写一个程序看一下。

  3. 整型和浮点型混合运算时,整型先转换成浮点型,运算的结果是浮点型。

  4. 在赋值运算中,当赋值号两边的数据类型不同时,右边的类型会转换为左边的类型,然后再赋给左边。如果右边数据类型的长度比左边长,那么将会丢失数据,这样就会降低精度,所以编译的时候会产生警告。


相关文章

  • JavaSE之基础

    三、基础 目录:注释,标识符,关键字、数据类型、类型转换、变量,常量、运算符、包机制,JavaDoc 1.注释 新...

  • c基础-标识符,关键字及数据类型转换

    标识符 C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下...

  • Flutter之基本语法一

    一. 基础数据类型 Symbol基础数据类型Symbol 在JavaScript中是将基本数据类型转换为唯一标识符...

  • 2-Java基础语法-常量与变量

    常量与变量 主要内容: 标识符 关键字 变量 数据类型 类型转换 常量 标识符 我们所认识的标识符: 类的名字,每...

  • 关键字、标识符、注释、数据、数据类型、常量、变量、printf、

    关键字及分类标识符注释数据及数据类型常量的概述及分类变量printf函数scanf函数 关键字及分类 关键字的基本...

  • Java 学习目录

    入门程序 注释 关键字 标识符 常量 变量和数据类型 数据类型转换 ASCII编码 运算符 方法入门 JShell...

  • JAVA基础学习

    一、Java语言基础 1.数据类型(8种基础数据类型、引用数据类型) 2.关键字与标识符(Java语言定义的50个...

  • Java技能树

    Java基础 1. 开发基础 1.1 JDK JRE 环境变量 2. 语法基础 2.1 关键字 标识符 数据类型 ...

  • java基础

    关键字: 常量的分类: 数据类型 注意事项: 标识符 标识符的命名规则: 定义变量的注意事项: 类型转换 快捷键 ...

  • javase基础回顾1

    在javase基础中,我们首先学习了: 标识符、 关键字 数据类型:8大基本数据类型与引用数据类型(类 接口 数组...

网友评论

      本文标题:c基础-标识符,关键字及数据类型转换

      本文链接:https://www.haomeiwen.com/subject/obfdvqtx.html