跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

C语言数据类型、运算符、表达式


NedK7

推荐的帖子

 

1.变量和常量的定义与使用方法

(1).常量:值不发生变化的量

字面常量:直接常量(常数)

包括:整型常量>>>>>>>>>12、0

实型常量>>>>>>>>>4.6、1.23

字符常量>>>>>>>>>"a"

 

符号常量:标识符、符号常量

标识符:程序中使用的各种名称(变量名、数组名、函数名、符号常量名)

标识符由字母、数字和下划线组成的一串符号,但是必须以英文字母或下划线开头。不允许使用关键字作为用户 标识符的名称。

c语言的标识符可分为关键字、预定义标识符、用户标识符

关键字>>>c语言规定的具有固定含义的标识符,也称保留字,均为小写字母int、while

预定义标识符>>>在c语言中有特定的含义,如printf、include

用户标识符>>>由用户根据需要定义的标识符,一般用来给变量、函数、数组等命名

符号常量:也称宏常量,由c语言中的宏定义预处理命令来定义

#define 符号常量 常量

习惯上用大写字母作为符号常量的标识符

(2).变量:值可以变化的量(先定义、后使用)

类型标识符 变量名1,变量名2,.....;

在定义变量的同时也可对变量赋初值>>>>>变量的初始化

变量定义语句可放在函数体内的前部,也可放在函数的外部或复合语句的开头

2.数据类型及其定义方法(基本类型、构造类型、指针类型、空类型)

基本类型:就是最简单的类型:如int 。char、double等。

构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一

基本数据类型或又是一个构造类型。构造类型有以下几种:结构体、共用同、联合体、类等。

指针类型:指针是一种特殊的,同时又是具有重要作用的数据类型。

空类型:即void类型。

3.整型、实型、字符型数据的定义、存储、表示范围及运用

(1).整型数据

定义:整型数据是不包含小数部分数值型数据,用字母I表示。整型数据只用来表示整数,以二进制形式存储。

?i=e081ea2b662a4595b569238b8155d234.png?

 

 

存储:以补码形式存储

原码、反码、补码:?i=1fbf5ce424ae43c183661e3a677af1f4.png?

 ?i=4cb85fe2984c4a27a208803ff8cc9319.png?

 ?i=b8495dc91e5c4660ba050475f0d3d878.png?

 

 

 

(2).实型数据

定义:实型数据也称为浮点数或实数。在C语言中,实数只采用十进制。它有二种形式:十进制小数形式和指数形式。

(十进制小数形式:必须有小数点

指数形式:尾数(可带符号)、阶码标志e或E、阶码(只能为整数,可带符号)>>>0.5E7)

实型变量分为:单精度(float型)>>>>4个字节、双精度(double型)和长双精度(long double型)>>>>8个字节 三类。

存储形式:float型(32位)

  符号位 指数 尾数
0 指数的二进制 23位(不够补0)
1 位+127 23位(不够补0)

double型(64位)

  符号位 指数 尾数
0 指数的二进制 55位
1 位+127 55位

(3).字符型数据

定义:字符

字符常量:用单引号括起来的一个字符,如'a'、'w',每个字符常量都占一个字节

只能用单引号括起来,不能用双引号或其他括号

字符常量是单个字符,对大小写敏感,空格也是一个字符

(区别于字符串:"a"、"ac"由双引号括起来)

转义字符:

 ?i=6da100113cdb4be7baa7737be9f2e8a6.png?

 

字符串常量:由一对双引号括起来的字符序列,如"china"

字符串常量的内存字节数等于字符串中字符数+1,增加的一个字节是由系统自动存入的字符'\0',作为字符串结束的标志

字符变量:用于存放单个字符变量,使用关键字char来定义

char optr;

4.变量赋初值

类型说明符 变量1= 值1, 变量2= 值2, ……;

5.不同类型数据间的转换与运算

(1).算术转换

当自动转换用于算术运算时>>>>算术转换

转换原则:自动将精度低、表示范围小的运算对象类型向精度高、表示范围大的运算对象类型转换

char、short>>>>int>>>>unsigned int>>>>long>>>>unsigned long>>>>float>>>>double

(2).赋值转换

在赋值运算中,只有在赋值号右侧表达式的类型与左侧类型完全一样时,才能进行赋值转换(赋值号右边的值不能超过左边变量的数值范围)

6.算术运算符、赋值运算符、逗号运算符及其表达式的运用

(1).算术运算符

基本算术运算符:+、-、*、/(加减乘除)、%(求余)

【+、- >>>>>作单目运算符时表正负号 >>>>>作双目运算符时表加减

% >>>>>运算符两边必须为整型,且所得结果的符号和被除数相同】

算术运算符的优先级:圆括号优先级最高>>>单目运算符>>>双目运算符

对象数 优先级 名称 运算符 运算规则 运算对象 结合性
圆括号 1 圆括号 () 括号里优先计算 整型或实型  
单目 2 + 取原值 整型或实型 自右向左
单目 2 - 取负值 整型或实型 自右向左
双目 3 * 整型或实型 自左向右
双目 3 / 整型或实型 自左向右
双目 3 % 整数取余 整型 自左向右
双目 4 + 整型或实型 自左向右
双目 4 - 整型或实型 自左向右

算术表达式:算术表达式是由常量变量、函数、圆括号、运算符等组成。一个常量、一个变量(已赋过值)、一个函数都是合法的表达式。

自增、自减运算符 >>>>>单目运算符 >>>>>自右向左结合

i++ >>>先使用再加1 ++i >>>先加1再使用(i--、--i同理)

(2).赋值运算符

“=” >>>赋值运算符,双目运算符,左边必须是变量,右边必须是表达式,具有自右向左的结合性,优先级只高于逗号运算符,比其他任何运算符优先级都低

复合赋值运算符:

对象数 名称 运算符 运算规则 运算对象 运算结果
双目 加赋值 += a+=b*3 >>>a=a+(b+3) 数值型 数值型
双目 减赋值 -=   数值型 数值型
双目 乘赋值 *=   数值型 数值型
双目 除赋值 /=   数值型 数值型
双目 模赋值 %=   整型 整型

赋值表达式:

?i=62eae25e7cef4d83834f450f9378c5a4.png?

 

 

(3).逗号运算符

表达式1,表达式2,.......

在所有运算符中优先级最低,结合性是从左向右

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...