C语言中常量变量和表达式
- 格式:ppt
- 大小:1.43 MB
- 文档页数:35
C语⾔详解-表达式和语句1. 什么是表达式?C语⾔中的表达式⼀种有值的语法结构,它由运算符将变量、常量、函数调⽤返回值结合⽽成。
1.1 变量变量名本⾝是⼀个表达式,表达式的值是变量当前的值。
复杂的表达式由[], ->, ., 和单⽬运算符*构成。
1.2 常量常量名本⾝是⼀个表达式,字⾯常量也是表达式。
对于这两者,表达式的值是常量当前的值。
1.3 函数调⽤对于返回值不为void的函数,对它的正确调⽤也是表达式。
表达式的值为函数的返回值。
1.4 操作符运算符⽤于连接表达式中的值。
以下是C语⾔中的运算符,运算符的优先级,及运算符的结合顺序OrderCategory Operator Operation Associativity1Highest precedence( )[ ]→: :.Function call L → RLeft to Right2Unary!~+-++- -&*Size of Logical negation (NOT)Bitwise 1’s complementUnary plusUnary minusPre or post incrementPre or post decrementAddressIndirectionSize of operant in bytesR → LRight -> Left3Member Access.*→*DereferenceDereferenceL → R4Multiplication*/%MultiplyDivideModulusL → R5Additive+-Binary PlusBinary MinusL → R6Shift<<>>Shift LeftShift RightL → R7Relational<<=>>=Less thanLess than or equal toGreater thanGreater than or equal toL → R8Equality==!=Equal toNot Equal toL → R9Bitwise AAND&Bitwise AND L → R 10Bitwise XOR^Bitwise XOR L → R 11Bitwise OR|Bitwise OR L → R 12Logical AND&&Logical AND L → R 14Conditional? :Ternary Operator R → L15Assignment=*=%=/=+=-=&=^=|=<<=>>=AssignmentAssign productAssign reminderAssign quotientAssign sumAssign differenceAssign bitwise ANDAssign bitwise XORAssign bitwise ORAssign left shiftAssign right shiftR → L>>=Assign right shift16Comma,Evaluate L → R1.5 实例/* 变量常量表达式 */asum10.5PI/* 算术表达式 */a + ba -b + ca *b + 'A'a /b -c + 10i++ + i++ + ++i/* 赋值表达式 */a = ba *=b += 20a =b =c = 10a = (b=4) / (c=2)/* 逗号表达式 */1+2, 3+4(10, a*5), a+10/* 关系表达式 */x == yx <= yx != y/* 逻辑表达式 */10 && 200 || 1(a>b) && (!0)/* 复合表达式 */x = ( y = (a + b), z=10)/* 表达式的应⽤ */if( !100 ) //!100为逻辑表达式printf("expression show!");for(int i=10; i<10; i++)//for包含3个表达式,分别为i=10 i<10 i++printf("expression show!");while( 1 ) //1也是⼀个表达式{printf("death loop!");}2. 语句语句指的是当程序运⾏时执⾏某个动作的语法结构。
C语言常量
1. 常量的概念
在C语言中,常量是指在程序执行过程中其值不会发生改变的标识符,也可以理解为固定的值。
与常量相对应的是变量,变量的值是可以在程序执行过程中进行改变的。
2. 常量的分类
C语言中的常量可以被分为以下几类:
2.1 字符常量
字符常量是由一个字符或者一个转义序列组成的,用单引号括起来。
例如:'a' // 表示一个字符常量
'\
' // 表示换行符
'\\t' // 表示制表符
2.2 整数常量
整数常量是整数的字面值,可以是十进制、八进制或十六进制的形式。
例如:
10 // 十进制整数常量
014 // 八进制整数常量,表示十进制的12
0xA2 // 十六进制整数常量,表示十进制的162
2.3 浮点常量
浮点常量是用来表示实数的字面值,包括普通小数形式和科学计数法形式。
例如:
3.14 // 普通小数形式
6.02e23 // 科学计数法形式,表示6.02乘以10的23次方
2.4 字符串常量
字符串常量是由多个字符组成的,用双引号括起来。
例如: ```。
c语言常量表达式C语言中常量表达式是指在编译时就能确定值的表达式,常用于定义常量、数组长度、枚举值等。
常量表达式在编译时就被计算,可以提高程序的效率和可读性。
常量表达式可以使用任何C语言中的常量和运算符,包括整型、浮点型、字符型、枚举、sizeof、_Alignof等。
以下是常用的常量表达式:1. 整型常量表达式整型常量表达式由整型常量、运算符、括号组成,例如:const int a = 5;const int b = 2;const int c = (a + b) * 3;在上面的例子中,c的值为21,因为(a+b)*3=21。
2. 浮点型常量表达式浮点型常量表达式由浮点型常量、运算符、括号组成,例如:const float pi = 3.14f;const float r = 2.0f;const float area = pi * r * r;在上面的例子中,area的值为12.56f,因为pi*r*r=3.14f*2.0f*2.0f=12.56f。
3. 字符型常量表达式字符型常量表达式由字符常量、运算符、括号组成,例如:const char ch1 = 'a';const char ch2 = 'b';const char ch3 = ch1 + ch2;在上面的例子中,ch3的值为'ab',因为ch1+ch2='a'+'b'='ab'。
4. 枚举常量表达式枚举常量表达式由枚举常量、运算符、括号组成,例如:enum color {RED, GREEN, BLUE};const int a = RED;const int b = GREEN;const int c = a + b;在上面的例子中,c的值为1,因为a+b=0+1=1。
5. sizeof常量表达式sizeof常量表达式用于计算变量或类型的大小,例如:const int a = 5;const int b = sizeof(a);在上面的例子中,b的值为4,因为int类型占4个字节。
C语言基础知识总结C语言基础知识总结总结是对取得的成绩、存在的问题及得到的经验和教训等方面情况进行评价与描述的一种书面材料,它可以促使我们思考,因此好好准备一份总结吧。
如何把总结做到重点突出呢?以下是店铺整理的C 语言基础知识总结,希望能够帮助到大家。
主要内容:1.C数据类型2.简单的算术运算和表达式3.键盘输入和屏幕输出4.选择控制结构总结风格:分条罗列,主要是知识点,有例题不多5.循环控制结构一、C数据类型1.C语言处理两种数据:常量和变量2.常量:整形常量、实型常量、字符常量、字符串常量、枚举常量3.整形常量:正整数、负整数、零 eg: 10,-30,04.实型常量:实数、小数、浮点数 eg: 3.14,-0.56,18.05.字符常量:字符型常量、用单引号括起来的任意字符 eg: x X ? , 96.字符串常量:用双引号括起来的一个或多个字符 eg: "x" "Hello" "Y78"7.在C程序中,整型常量可以用十进制、八进制、十六进制形式表示,但编译器都会自动将其转换成二进制存储8.整型常量的类型:长整型、短整型、有符号、无符号。
9.不同进制的整型常量的表示形式:1)十进制:0~9数字组合,可带正负号 eg: 256,-128,0,+72)八进制:0开头,后面跟0~7数字组合 eg: 021,-0173)十六进制:0x(0X)开头,后跟0~9,a~f(A~F)数字组合eg:0x12,-0x1F10.不同类型的整形常量的表示形式:1) 有符号整型常量:默认int型定义为有符号整数,无需signed eg:10,-30,02) 无符号整形常量:常量值后跟u或U,只能表示>=0的数eg:30u,256U3) 长整型常量:常量值后跟l或L eg:-256l,1024L4) 无符号长整型常量:常量值后跟LU、Lu 、lU 、lu eg:30lu11.C程序中,实型常量两种表示形式:小数、指数12.不同形式的实型常量的表示形式:1) 十进制表示形式:数字和小数点组成,必须要有小数点,整数部分可省略 eg:0.123, -12.35, .982) 指数形式:e或E代表以10为底的指数,e左边是数值部分(有效数字,可以是整数、小数,不能省略),e右边是指数部分(必须是整数形式) eg:3.45e-613.实型常量有单精度和双精度之分,无有符号和无符号之分14.不同类型的实型常量表示形式:1)单精度实型常量:常量值后跟F或f eg:1.25F,1.25e-2f2)双精度实型常量(double):实型常量默认按双精度处理eg:0.123,-12.35, .983)长双精度实型常量(long double):常量值后跟L或l eg:1.25L15.变量:在程序执行过程中可以改变的量16.变量在必须先定义后使用,定义时需要声明变量的类型和变量名,一般形式:类型关键字变量名;17.关键字是C语言预先规定具有特殊意义的单词,类型关键字用于声明变量的类型18.标准C语言编写的程序都是以main()作为开头,指定了C程序执行的起点,在C程序中只能出现一次,称为主函数19.C程序总是从main函数开始执行,与他在程序中的位置无关,main函数主体部分称为语句,用{}括起来,一般C语句以;结束20.变量的类型决定了编译器为其分配内存单元的字节数、数据在内存单元中的存放形式、该类型变量合法的取值范围以及该类型变量可参与的运算种类21.变量名是用户定义的标识符,用于标识内存中具体的存储单元,存放的数据称为变量的值22.新数据存放于存储单元时,旧数据将会被修改,反应变量的值是可以改变的23.变量名的命名规则:1)标识符只能由英文字母、数字、下划线组成2)标识符必须以字母或下划线开头3)不允许使用C关键字为标识符命名4)标识符可以包含任意多个字符,但一般会有最大长度限制,预编译器有关,一般不会超过,最好不超过8个字符注意:标识符区分大小写eg:x y3 _imax ELSE X A_to_B (合法)eg:7x int #No bad one re-input(不合法)24.标准C规定所有变量必须在第一条可执行语句之前定义25.在同一条语句中可以同时定义多个相同类型变量,多个变量之间用逗号分隔,没有顺序要求26.在使用标准输入/输出函数时,必须在程序开头加上编译预处理命令27.中stdio为头文件,std是standard,i为input,o为output,h 为head28.编译预处理命令#include的作用:将在输入/输出函数的头文件stdio.h包含到用户源文件中29.%d按十进制整数个格式输出,%f按十进制小数格式输出,一般输出6位小数,%c输出一个字符,换行,双引号内字符原样输出30.不同类型的数据在内存中占用不同大小的存储单元,他们所能表示的数据的取值范围各不相同,不同类型的数据表示形式及其可以参与的运算种类也不同31.定义整型变量时,只要不指定为无符号型,其隐含类型为有符号型,signed通常省略不写32.C程序中每个变量的值都是按字节编址,都被存储在内存中特定的存储单元中,这个存储空间实际是一个线性地址表,即每个字节的存储空间对应一个唯一的地址33.1个字节等于8个二进制位,即8个位为一个字节,一个字节可以表示的整数最小为0,最大255,即8个位可以表示0-255之间的数,一个二进制位的值只能是0或134.同种类型在不同的平台所占字节数不同,要计算数据类型所占内存空间的字节数需要用sizeof()运算符35.sizeof是C语言关键字,不是函数名,sizeof(变量名)计算一个变量所占内存的字节数36.计算不同类型运算符的表达式时,要考虑运算符的优先级和结合性37.正数的反码、补码与原码都相同,负数的补码等于反码加138.在计算机内存中负数都是用补码来表示39.对于实数,无论小数海曙指数形式,在计算机内存中都采用浮点形式来存储40.浮点数分为阶码、尾数两部分,实数N=S*pow(r,j),S为尾数(无论正负,规定用存小数),j为阶码(无论正负,必须是整数),r是基数 eg:10.0111=0.100111*pow(2,10)41.阶码所占位数决定实数的取值范围,尾数所占位数决定实数的精度,尾数的符号决定实数的正负,阶码和尾数的字节大小与编译器有关42.float型变量能接收实型常量的7位有效数字,double型变量能接收16位43.运算符的优先级:单目运算<算术运算<关系运算<逻辑运算<条件运算<赋值运算<逗号运算44.素数:又称质数,指在大于1的自然数中,除1和本身不能被其他自然数整除的数45.合数:指在自然数中除1和本身外还能被其他自然数整除的数46.因子:所有能整除这个数的数,不包括自身,但包括147.闰年:能被4整除但不能被100整除,或能被400整除二、简单的算术运算和表达式1.条件运算符是C语言提供的唯一一个三元运算符,C语言中没有幂运算符2.只有计算相反数是一元运算符,其余运算符都是二元运算符3.一元运算符也叫单目运算符,二元运算符也叫双目运算符,三元运算符也叫三目运算符4.整数除法的结果是整数,浮点数除法的结果是浮点数5.求余运算限定参与运算的两个操作数必须为整型,余数的符号与被除数的符号相同,不能对两个实型数进行求余运算6.所有的算术运算符中只有一元的去相反数运算符为右结合,其余的结合性都为左结合7.同一优先级的运算符进行混合运算时,从左向右依次进行8.运算符的优先级:单目运算>算术运算>关系运算>逻辑运算>条件运算>赋值运算>逗号运算9.计算并输出一个三位整数的个位、十位、百位数字之和#includevoid main(){int x=321;int a,b,c,sum;a=x%10;//a=1b=(x/10)%10;//b=2c=x/100;//c=3sum=a+b+c;printf("a=%d,b=%d,c=%d sum=%d ",a,b,c,sum);}10.涉及算术运算的复合赋值运算符有5个:+=,-=,*=,/=,%=11.增1运算符也称自增运算符,减1运算符也称自减运算符,都是一元运算符,只有一个操作数必须是变量不能是常量或表达式12.自增自减运算符作为前缀时,先执行加1或减1然后使用;自增自减运算符作为后缀时,先使用再执行加1或减1;13.考虑优先级与结合性的实例m=-n++《=》m=-(n++)《=》m=-n,n=n+1;//正面:-和++都是一元运算符,优先级相同,此时要考虑结合性,结合性都是右结合的,所以先算++后算-//反面:如果等价m=(-n)++就不合法了,因为表达式不能进行自增操作14.scanf函数和printf函数都是C的标准输入/输出函数,&为取地址运算符15.宏常量与宏替换:1) 在程序中直接使用的常数称为幻数,将幻数定义为宏常量或const常量是为了提高程序的可读性和可维护性2) 宏常量也称符号常量,没有数据类型,编译器不对其进行类型检查,只进行字符串替换3) 宏定义一般形式:#define 标识符字符串。
c语言表达式前言本文主要介绍什么是表达式,表达式在C语言中非常常见希望大家可以好好学习。
一、表达式定义表达式是一种有值的语法结构,它由运算符(变量、常量、函数调用返回值)结合而成,每个表达式一定有一个值。
二、常量表达式例子:a, 12, 12.4值:就是变量或者常量本身的值作为条件的时候非0即真,0即假三、算数表达式例子a+b c*d+a 12/3+d i++ --a值就是计算的结果作为条件的时候非0即真,0即假四、赋值表达式例子a=12 a+=12 a = c= d值赋值完a的值,即为结果作为条件的时候非0即真,0即假五、关系表达式例子a >b 2 ==3值:1和0(当表达式成立时返回一个1,表达式不成立时返回一个0)作为条件的时候非0即真,0即假六、逻辑表达式例子a && b(a与b)c||d(c或b)!a(非a)//具体后面文章讲解值:1和0(当表达式成立时返回一个1,表达式不成立时返回一个0)作为条件的时候非0即真,0即假七、复合表达式实质上就是一些算数运算结合在一起。
例子x = ( y = (a + b + a > 4), z=10) //就是平时的复合运算值:依据运算符优先级和结合性得到结果作为条件非0即真,0即假八、逗号表达式例子(1,2,3,4,a) //值为最右侧的也就是a值:最右侧的值是逗号表达式的结果作为条件的时候非0即真,0即假代码:#include<stdio.h>int main(void){int a=1,2,3,4;printf("%d\n",a);//结果是4return 0;}九、其他的有返回值的函数也是一个表达式(函数后面文章讲解)其他运算符总结表达式类型多种多样,希望大家好好理解。