首页 > 其他分享 >C语言笔记3

C语言笔记3

时间:2023-11-03 21:12:51浏览次数:32  
标签:存储 变量 笔记 C语言 运算符 赋值 表达式 常量

关键字

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)在强制类型转换时,得到一个所需类型的中间值变量,原来变量类型未发生变化。

标签:存储,变量,笔记,C语言,运算符,赋值,表达式,常量
From: https://www.cnblogs.com/LCGJ/p/17808504.html

相关文章

  • 【转载】指数平滑 —— 学习笔记
    原文地址:https://zhuanlan.zhihu.com/p/34532274  注意:本文只转载了原文部分内容,余下的具体例子并没有转载,有需要继续阅读者请转自原文地址继续阅读:https://zhuanlan.zhihu.com/p/34532274  =========================================       余......
  • openGauss学习笔记-113 openGauss 数据库管理-设置安全策略-设置帐户安全策略
    openGauss学习笔记-113openGauss数据库管理-设置安全策略-设置帐户安全策略113.1背景信息openGauss为帐户提供了自动锁定和解锁帐户、手动锁定和解锁异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据安全。113.2自动锁定和解锁帐户为了保证帐户安全,如果用户输入......
  • JUC并发编程学习笔记(六)Callable(简单)
    Callable(简单)callable接口和runnable接口类似,都是为了执行另外一条线程而设计的,区别是Runnable不会返回结果也不会抛出异常。1、可以有返回值2、可以抛出异常3、方法不同;run()/call();Runnable实现Runnable接口,重写run方法,无返回值//原线程classRunnableThreadimple......
  • 算法学习笔记(35): 期望中的停时
    期望中的停时参考自:###鞅与停时定理学习笔记这或许是一个比较抽象的套路吧,知道的就会,不知道的就不会。我们可以如下描述这个套路,或者说利用势能函数\(\Phi\)来理解。对于随机事件\(\{A_0,A_1,...\}\),存在一个最终局面\(A_t=e\),我们需要求\(A_t\)第一次出现在\(A......
  • 【Flask框架】全知识点笔记4章60页MD文档,今日主题:flask视图和路由开发
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • 第九周Linux教材第五章学习笔记——定时器及时钟服务
    第五章 定时器及时钟服务5.1硬件定时器定时器是硬件设备,包括时钟源和可编程计数器。时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。使用一个倒计时值对计数器进行编程,每个时钟信号减1。当计数减为0时,计数器向CPU生成一个定时器中断,将计数值重新加......
  • 实验3—C语言函数应用编程
    1、实验任务1源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN806voidprint_text(intline,intcol,chartext[]);//函数声明7voidprint_spaces(intn);//函数声明8voidprint_b......
  • C语言 循环队列
    什么是队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。什么是循环队列在实际使用队列时,为了使队列空间能重复使用,往往对......
  • React学习笔记16-属性props
    1.属性的定义props是正常是外部传入的,组件内部也可以通过一些方式来初始化的设置,属性不能被组件自己更改,但是你可以通过父组件主动重新渲染的方式来传入新的props。这就是React中的单向数据流2.属性的特点属性是描述性质、特点的,组件自己不能随意更改,必须由父组件进行更改......
  • React学习笔记17-属性VS状态
    相似点:都是纯js对象,都会触发render更新,都具有确定性(状态/属性相同,结果相同)不同点:1.属性能从父组件获取,状态不能2.属性可以由父组件修改,状态不能3.属性能在内部设置默认值,状态也可以,设置方式不一样4.属性不在组件内部修改,状态要在组件内部修改5.属性能设置子组件初始值......