前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解

C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解

原创
作者头像
小徐在进步
发布2024-09-28 21:24:33
3240
发布2024-09-28 21:24:33
举报
文章被收录于专栏:c语言程序设计

C语言数据与数据类型

数据四类:常量 变量 表达式 函数

常量四类:整型常量 实型常量 字符型常量 字符串常量

1.常量

1.1 整型常量:三种形式(十进制,八进制,十六进制)

第一形式:十进制:是用一串连续的0....9数字

如32767,-32768,9,0,-7

第二形式:八进制:用数字0开头的一串连续合法八进制

如:013,05,0777,089(出错)

第三形式:十六进制:用0x或0X开头的一串连续合法的十六进制

如:0x12,0Xfff

若表示长整型常量则必须后加字母l或L,如0L,34l,0x123L

1.2 实型常量:两种形式(小数,指数)

第一形式:小数形式:由数字和小数点组成。

如:123.456 123. .456 0.456 都是合法的实型变量

c语言 .后面的0,或者.前面的0都可以省略

第二形式:指数形式:用"E"或"e"后紧跟一个整数表示以10为底幂数

如:1.23E-5

注:

(1)字母E或e之前之后必须都有数字,且后必为整数。

(2)字母E或e的前后及各数字之间不能有空格

如判断合法性:

1.23e4(合法) 5.3e0.5(不合法).23e5(合法) 4E(不合法)

1.3 字符型常量:四种形式(常规,转义,八进制,十六进制)

第一形式:一对单引号‘’括一个字符

如:‘a ’ ‘A’ ‘@’ ‘9’

单引号中只能有一个字符,而且还不能为空,即有且仅有一个

第二形式:转义字符常量:必须以一个反斜杠"\"

常见的转义字符有:

\n 表示换行符

\t 表示制表符

\b 表示退格符

\r 表示回车符

第三形式第四形式,先不给出

/在单引号中不算一个字符,更像是一个预备动作,告诉计算机,我接下来的符号是转义符,如‘\n’是换行。'n'就是小写字母n,所以,单引号也不能只有/,如‘/’,计算机会认为你没有输入反斜杠后的符号,故会报错

1.4 字符串型常量:一种形式

定义:用一对双引号括起来的若干字符

如:"abcdefgh" "1234567"

注:

(1) 每一个字符串尾都有一个字符串结束符‘/0’

(2)C语言中没有字符串变量,一定要区分好字符常量和字符串变量

正是因为c语言中没有字符串变量这种形式,字符串的尾部需要加上结束符,作为字符串的结束。

2.变量

变量使用规则:先定义后使用

定义格式:数据类型名 变量名列表;

比如:

(1)int i;int j;int k;

(2)int i,j,k;

(3) int i=1,j=1,k=9;

注:

(1)变量必须先定义后使用

int long float double char

(2)变量名属于用户标识符,遵守用户标识符命名规则。

(3)在同一"函数体"{ } 中不能定义同名变量

(4)同时定义多变量,必用逗号分隔

(5)变量可赋值(初始化),无初值是随机值

3.函数(标准函数 自定义函数)

根号7如何表示?sqrt(7)

|-5|如何表示?abs(-5)

4.表达式

定义:表达式:用运算符将数据连接起来的合法式子

运算符:三个属性:功能 优先级 结合性(运算方向)

4.1 算术运算符及算术表达式

算数运算符:+ - * / % 同级方向从左往右

求余(%)

(1)两边运算对象必须是整型

如:7.0%3(不合法)

(2)求值方法:先忽略负号不计求出余数,再将所得的余数的符号定成与被除数相同的符号即可

代码语言:c
复制
17%3                  结果为:2
17%-3                 结果为:2
-17%3                 结果为:-2
-17%-3                结果为:-2

注:

(1)单独的常量,变量或函数调用都是c语言合法表达式

(2)凡是表达式都有一个确定的值

4.2 赋值运算符及赋值表达式

赋值运算符:= 方向自右向左

格式:变量名=表达式

例如:A=5+8 a=b=c=1+2

注意:

  1. 赋值运算符左边只能是一个变量如 a+b=3 和4=3都是非法表达式 a=6 a+(b=3) 合法表达式
  2. 赋值运算符右边可以合法表达式如:a=b=20 a=(b=10)/(c=2)
  3. 赋值表达式的值就是赋值运算符左边变量值
  4. 实型数据赋给整型变量时,实型小数舍去,整型数据赋给实型变量时系统自动将整型数据转换成实型数据。

复合赋值运算符

+= -= *= /= %= &= |= 等等

注意:复合赋值运算符的两个运算符中间不能有空格

如:a+ =3(不合法) a+=3(合法)

例1:

若有int a=5 b=8 则下列表达式的值是多少?用完表达式后变量a和b的值分别为多少?

a+=b/=a

先算右,b/=a,b=b/a,表达式的值为1,b=1

再算左 a+=1,a=a+1,表达式的值为6 a=5

例2:

int a=5,b=9;float c 则表达式c=b/a+1.2的值多少?

1+1.2=2.2

4.3 自增自减运算符

自增运算符:++

自减运算符:--

如:

代码语言:c
复制
i++; ++i; 等价于i=i+1;
i--; --i; 等价于i=i-1;

注:

  1. 只能用于变量不能用于常量或表达式 如 3++,(a+b)++,不合法的表达式 如 int a=3; 则表达式的值 变量的值
代码语言:c
复制
int a=3
a++    表达式的值:3      变量的值:4
++a    表达式的值:4      变量的值:4
a--    表达式的值:3      变量的值:2
--a    表达式的值:2      变量的值:2

总结:先++,先算变量,后++,后+变量

4.4 逗号运算符及其表达式(顺序求值表达式)

格式:表达式1,表达式2,表达式3 .........,表达式n

逗号表达式:优先级最低

功能:逗号表达式的值就是表达式n(最后一个表达式的值,求值顺序是从左到右依次求解

4.5 强制类型转换(显式转换)

格式:

(类型名)表达式 或 (类型名)(表达式)

利用强制类型转换运算符可将一个表达式的值转换成指定的类型。

如:float x=123.345,y;

(1) int(x) 不合法

(2) ( int) x (int) (x)

(3)(int)x+y 不合法。(int)(x+y)

作业

题1: int a=3; 求a++*a

3*4=12

题2:若有定义int a=20,b=20,c=20,d=20;则下列表达式的值分别为多少?

A a++*10

B 10*b++

C ++c/7

D (60+d++)%9

A: 20*10=200

B: 200

C:3

D:80%9=8

题3 关于隐式转换-自动完成

隐式转换自动完成意味着,不同数据类型之间计算的自动转换

原理是:字节数少的向高的转换

char一个字节 转换向int 两个字节

int 转换为unsigned 两个字节

unsigned 转换为 long 4个字节

long 转换为double 4个字节

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C语言数据与数据类型
  • 1.常量
    • 1.1 整型常量:三种形式(十进制,八进制,十六进制)
      • 1.2 实型常量:两种形式(小数,指数)
        • 1.3 字符型常量:四种形式(常规,转义,八进制,十六进制)
          • 1.4 字符串型常量:一种形式
          • 2.变量
          • 3.函数(标准函数 自定义函数)
          • 4.表达式
            • 4.1 算术运算符及算术表达式
              • 4.2 赋值运算符及赋值表达式
                • 4.3 自增自减运算符
                  • 4.4 逗号运算符及其表达式(顺序求值表达式)
                    • 4.5 强制类型转换(显式转换)
                    • 作业
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档