C语言笔记3(变量)(常量)(数据类型)

关键字

1.C语言预先规定的,具有特定意义的字母组合(32个)。

2.保留给语言本身使用,也称为保留字。

标识符

定义:为程序的构成成分命名。

变量

变量是程序执行期间其值可以改变的量,必须先定义后使用。

变量定义本格式

类型说明符 变量名1 变量名2...

如 int a,b,c;

float x;

功能:指定变量的名字和数据类型,一次可以定义一个或多个相同类型的变量。

变量定义的位置

变量必须在第一条可执行语句前定义(C99取消了这一规定)。

变量的初始化

1.变量可以在定义时对其赋值,称为初始化。

2.变量没有赋值,其单元内容不可以使用,是内存中的随机数。变量在程序中可以被多次赋值。

=赋值号 表示将右边的表达式内容赋值给左边的变量

.变量必须先定义,先赋值,后使用。

正确理解变量的概念

-变量名:代表内存中的储存单位;变量通过变量名标识,变量名和内存中的存储单位相对应,通过变量来存、取存单位的内容。

-变量的地址:系统分配给变量的存储单位的起始地址。

-变量的类型:定义时指定,决定存储单位的起始地址。

-变量的值:对应变量名存储单位放的具体数值。

-变量名命名可采用标识符命名法

sizeof运算符

功能:获取变量和数据类型所占内存大小(字节数)

格式:sizeof 表达式 sizeof (数据类型名或表达式)

例如sizeof(int) sizeof(a)

整型数据的存储方法

以短整型存储长度2个字节16位为例

有符号整数(0代表正、1代表负)最大数=2^15-1

无符号整数(全部位数用来存放数值)最大数==2^16-1

浮点数——科学计数法

计算机中采用以2为底的科学计数法记数法储存:N=数符xR^ExM

(其中:数符0为正,1为负,M为尾数,E为阶码,R为基数。小数点不占位置,采用隐含方法表示,尾数中的1不存储,只存储小数部分。)

尾数的位数决定数的精度,阶码的位数决定数的范围

小结

整数采用有符号和无符号方式指定位进行存储;

浮点数可以扩大实数的表示范围,表示既有整数部分、又有小数部分的实数;采用尾数和阶码方式存储;

浮点数表示的数仅是数值的近似值,并非真正有有的时候;

采用取值范围更大的类型有助于防止数值溢出;

了解处理文体的规模,选取恰当的数据类型。

常量

常量的分类

-数值常量

-符号常量

-字符常量

-字符串常量

整型常量

十进制数:0~9

八进制数:0~7,以0开头

十六进制数:0~9,A~F/a~f,以0x或0X开头

整数后加L(小写l)表示长整型 123L

实数常量(实型常数不区分单精度和双精度)

两种表示形式

十进制数形式:有数字、小数点及正负号组成(必须有小数点)

指数形式:有数、小数点、字母e或E及正负号组成。

(e或E之前必须有数字,且后指数必须为整数)

-实数常量后加f或F表示按单精度存储和运算

符号常量(宏常量)

符号常量:用一个符号代表一共常量,必须在函数开始用宏定义声明后使用。

符号常量定义#define 宏名 字符串

功能:在程序编译时,首先使用符号串替换程序中的所有宏名,在进行编译。符号串可以是常量、表达式、格式串等。

const常量-定义格式:如const doublle pi=3.1415;

字符常量

字符型数据用来表示一个字符值。在计算机内部存储字符的ASCII

字符常量:用单引号括起来的一个字符 如:’z'、‘A'、'1'

char c='Y'

字符串常量:如:“abc"、"a"、"\n"

转义字符

算术运算符

分类:

算术、关系、逻辑、位运、赋值

整除问题

“/"是除法运算符,当两个整数相除时结果取整(整除)。

若有一个负数,采取向零取整;

注意在表达式中的使用。

如:9/2=4

-9/2=4

1/2=0

1.0/2=0.5

"%"取余运算符;

该运算符只作用两个整数的运算,运算结果为两个整数的余数,结果为正数;

运算结果符号与被除数的符号一致;

如果被除数小于除数,结果即为被除数。

如:9%2=1; -9%2=-1; 9%-2=1; 2%9=2

常用数学库函数

平方根函数:sqrt(x),计算x^1/2的值

绝对值函数:fabs(x),求x的绝对值

幂函数:pow(x.n),计算x^n

指数函数:exp(x),计算e^x

以e为底的对数函数log(x),计算lnx

三角函数:sin(x),计算sin(x)的值

 

表达式书写规则

使用合法的C语言运算符;

表达式必须书写在一行;

使用圆括号改变表达式的运算顺序。

赋值运算符:变量名=常量或表达式 结合性:从右向左

复合赋值运算符

特点:简化程序书写。

结合性从右至左。

注意两个运算符中间不要有空格。

符号复合赋值运算说明等价于结合性
+= a+=b a=a+b 从右到左
-= a-=b a=a-b 从右到左
*= a*=b a=a*b 从右到左
/= a/=b a=a/b 从右到左
%= a%=b a=a%b 从右到左

复合赋值运算练习

例:a=12 a+=a-=aa; 结果:a=-2264,等价于a=a+(a=a-(aa))

自增自减运算符

++a完成a=a+1,表达式的值为a+1后的值;

a++完成a=a+1,表达式的值为a原来的值;

作为前缀运算符:

k=++i; i=i+1;k=i;

当i=2时,执行完成该语句,i和k的值都是3.

作为后缀运算符:

k=i++; k=i;i=i+1;

当i=2时,执行完成该语句,k的值是2,i的值是3。

与其他运算组合使用:

k=-a++; k=-(a++);

当a=1时,执行完该语句,k的值是-1,a的值为2。

逗号运算符:

优先级:所有运算符中级别最低的运算符。

逗号表达式:

形式:表达式1,表达式2,...,表达式n.

求解过程:顺次求解表达式1,2...最后求解表达式n

表达式值:逗号表达式的值为表达式n的值,类型为表达式n得类型。

结合性:从左向右。

最终表达式n的值做为所求值。

数据类型转换

自动类型转换

强制类型转换:

将表达式的值转换为指定类型。

形式:(类型名)表达式

例如:(double)(a+b) 将a+b的值转换为double型。

说明:

(1)表达式应用括号括起

例如:(int)(x+y);将x+y的值转换为整型

(int)x+y;将x的值转换为整型

(2)在强制类型转换时,得到一个所需类型的中间值变量,原来变量类型未发生变化。

posted @   ZDhr  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示