c语言表达式语句,C语言之运算符、表达式和语句

#include

#define ADJUST 7.31

int main(void)

{

const double SCALE = 0.333;

double shoe, foot;

printf("Shoe size foot length\n");

shoe = 3.0;

while (shoe < 18.5)

{

foot = SCALE * shoe + ADJUST;

printf("%10.1f %15.2f inches\n", shoe, foot);

shoe = shoe = 1.0;

}

printf("If the shoe fits,wear it.\n");

system("pause");

return 0;

}

/*该代码会一直运行下去*/

基本运算符

赋值运算符

#include

int main(void)

{

int jane, tarzan, cheeta;

cheeta = tarzan = jane = 68;

printf("cheeta tarzan jane\n");

printf("First round score %4d %8d %8d\n", cheeta, tarzan,jane);

system("pause");

return 0;

}

加法运算符

printf("%d",4+20);

减法运算符

someone = 22-12;

符号运算符

value = -1;

value = +1;

乘法运算符

cm = 2.5*inch;

#include

int main(void)

{

int num = 1;

while (num < 21)

{

printf("%4d %6d\n", num, num*num);

num = num + 1;

}

system("pause");

return 0;

}

除法运算符

value_2 = 6.0/3.0

浮点数除法的结果是浮点数,而整数除法的结果是整数。在浮点数和整数的运算中,会把整数先化为浮点数。

#include

int main(void)

{

printf("integer division:5/4 is %d\n", 5 / 4);

printf("float division:7/4 is %1.2f\n", 7. / 4.);

system("pause");

return 0;

}

/*

result:

integer division:5/4 is 1

float division:7/4 is 1.75

*/

其他运算符

sizeof运算符和size_t类型

sizeof运算符以字节为单位返回对象的大小。

#include

int main(void)

{

int n = 0;

size_t intsize;

intsize = sizeof(int);

printf("n = %d, n has %zd bytes; all ints have %zd bytes.\n", n, sizeof n, intsize);

system("pause");

return 0;

}

/*

result:

n = 0, n has 4 bytes; all ints have 4 bytes.

*/

求模运算符%

#include

#define SEC_PER_MIN 60

int main(void)

{

int sec, min, left;

printf("Convert seconds to minutes and seconds!\n");

printf("Enter the number of seconds(<=0 to quit):\n");

scanf_s("%d", &sec);

while (sec > 0)

{

min = sec / SEC_PER_MIN;

left = sec % SEC_PER_MIN;

printf("%d seconds is %d minutes,%d seconds.\n", sec, min, left);

printf("Enter next value(<=0 to quit):");

scanf_s("%d", &sec);

}

printf("Done!\n");

return 0;

}

递增运算符

#include

int main(void)

{

int a = 1, b = 1;

int a_post, pre_b;

a_post = a++; //后缀递增

pre_b = ++b; //前缀递增

printf("a:%ld a_post:%d b:%d pre_b:%d\n",a,a_post,b,pre_b);

system("pause");

return 0;

}

/*

result:

a:2 a_post:1 b:2 pre_b:2

*/

递减运算符

#include

int main(void)

{

int a = 100, b = 100;

int a_post, pre_b;

a_post = a--;

pre_b = --b;

printf("a:%ld a_post:%d b:%d pre_b:%d\n",a,a_post,b,pre_b);

system("pause");

return 0;

}

/*

result:

a:99 a_post:100 b:99 pre_b:99

*/

优先级

只有圆括号的优先级比递增/递减运算符优先级高,而且其只影响一个可修改的左值。

表达式和语句

表达式

表达式是由运算符和运算符对象组成,一些表达式由子表达式组成。还有一些表达式是逻辑表达式,其值不是0就是1.

语句

语句是C语言程序的基本构建块,一条语句相当于一条完整的计算机指令,且大多数都是以分号结尾。

副作用:如state=50,C会对其求值,而对该表达式求值的副作用就是把变量states的值改为50.

序列点:在C语言中,语句中的分号标记了一个序列点。意思是,在一个语句中,赋值运算符、递增运算符和递减运算符对运算对象做的改变必须在程序执行下一条语句之前完成。

符合语句

符合语句是用花括号括起来的一条或多条语句,复合语句也称为块。

类型转换

基本规则

当类型转换出现在表达式时,无论是unsigned还是signed的char和short都会被自动转换成int,如有必要会被转换成unsigned int(如果short与int的大小相同,unsigned short就比int大。这种情况下,unsigned short会被转换成unsigned int)。在K&R那时的C中,float会被自动转换成double(目前的C不是这样)。由于都是从较小类型转换为较大类型,所以这些转换被称为升级。

涉及两种类型的运算,两个值会被分别转换成两种类型的更高级别。

类型的级别从高至低依次是long double、double、float、unsigned long long、long long、unsigned long、long、unsigned int、int。例外的情况是,当long 和 int 的大小相同时,unsigned int比long的级别高。之所以short和char类型没有列出,是因为它们已经被升级到int或unsigned int。

在赋值表达式语句中,计算的最终结果会被转换成被赋值变量的类型。这个过程可能导致类型升级或降级(demotion)。所谓降级,是指把一种类型转换成更低级别的类型。

当作为函数参数传递时,char和short被转换成int,float被转换成double。

待赋值的值与目标类型不匹配时的规则

目标类型是无符号整型,且待赋的值是整数时,额外的位将被忽略。例如,如果目标类型是 8 位unsigned char,待赋的值是原始值求模256。

如果目标类型是一个有符号整型,且待赋的值是整数,结果因实现而异。

如果目标类型是一个整型,且待赋的值是浮点数,该行为是未定义的。

强制类型转换运算符

mice = (int)1.2+(int)2.3

带参数的函数

#include

void pound(int n);

int main(void)

{

int times = 5;

char ch = '!';

float f = 6.0f;

pound(times);

pound(ch);

pound(f);

system("pause");

return 0;

}

void pound(int n) //函数声明

{

while (n-- > 0)

printf("#");

printf("\n");

}

PHP语句【变量、运算符表达式、语句】

一.变量的方法.1.empty可以用empty的方法能够判断变量的值是不是为空.①如果我们看一下某一个变量是不是已经存在过了假如我们输出一下 var_dump (empty($a)); 返回值为tru ...

c语言&lpar;3&rpar;--运算符&amp&semi;表达式&amp&semi;语句

计算机的本职工作是进行一系列的运算,C语言为不同的运算提供了不同的运算符! 1.那些运算符们 .基本运算符 算术运算符:+ - * /  % ++ -- 赋值运算符:= 逗号运算符:, 关系运算符:& ...

C Primer Plus学习笔记(四)- 运算符、表达式和语句

基本运算符 赋值运算符:= 在C语言中,=不是“相等”,而是赋值运算符,把左边的值赋给右边的变量 a = 2018; //把值2018赋给变量a 赋值表达式语句的目的是把值储存到内存位置上,用于储存值 ...

C语言基础课程 第四课 它山之石可以攻玉---C语言数据类型和表达式

 1         C语言中的数据类型 1.1      常量 常量就是在程序中不可变化的量 1.1.1         #define #define MAX 10 Define;//定义了一 ...

Java代码三级跳——表达式、语句和代码块

Java代码三级跳—表达式.语句和代码块 表达式(expression):Java中最基本的一个运算.比如一个加法运算表达式.1+2是一个表达式,a+b也是. 语句(statement):类似于平时说 ...

C Primer Plus&lowbar;第5章&lowbar;运算符、表达式和语句&lowbar;编程练习

Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...

Java基础知识笔记第三章:运算符表达式语句

算术运算符与表达式 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * ...

【&period;net 深呼吸】细说CodeDom(2):表达式、语句

在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

速战速决 &lpar;1&rpar; - PHP&colon; 概述&comma; 常量&comma; 变量&comma; 运算符&comma; 表达式&comma; 控制语句

[源码下载] 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句 作者:webabcd 介绍速战速决 之 PHP 概述 常量 变量 运算符 表达式 控制语句 示例1. ...

随机推荐

c&plus;&plus; 左值 和 右值

什么是lvalue, 什么是rvalue? lvalue: 具有存储性质的对象,即lvalue对象,是指要实际占用内存空间.有内存地址的那些实体对象,例如:变量(variables).函数.函数指针等 ...

MFC各种控件的常见操作(逐步添加中&period;&period;&period;&period;&period;&period;)

由于经常切换系统或界面框架进行编程,难免有时会忘记之前的编程函数等等.所有在此自己做一个备份,以防止重新充电带来的痛苦! 1.CButton 1.1 在VC中编程实现按钮的启用(enable)和禁用( ...

Linux常用命令&lowbar;(进程管理)

进程管理:ps.top.kill 指令名称:ps语法:ps [选项]-a显示所有终端机下执行的程序.-e显示所有程序.-f显示UID,PPIP,C与STIME栏位.功能描述:查看系统中运行的进程.范例 ...

鸟哥的linux私房菜---非常好的linux基础网址【转】

转自:http://linux.vbird.org/linux_basic/0320bash.php 在 Linux 的環境下,如果你不懂 bash 是什麼,那麼其他的東西就不用學了!因為前面幾章我們 ...

Solution multisite htaccess cleanURL

My solution to getting Clean URL working with my multisite setup drupal 4.7 I added Alias to my http ...

github 上传项目基本步骤

说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...

JS模式--装饰者模式(用AOP动态改变函数的参数)

Function.prototype.before = function (beforefn) { var _self = this; return function () { beforefn.ap ...

SQL Server 虚拟化(2)——理想的SQL Server虚拟机架构

本文属于SQL Server虚拟化系列 搭建SQL Server虚拟机,在各个组织之间都有自己的标准和最佳实践.从第一眼看去,光物理配置就有过百种,所有的这些细微差别都有可能为后续日常管理过程中故障侦 ...

&lbrack;机器学习&rsqb;梯度提升决策树--GBDT

概述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由 ...

C程序运行时的内存分布

该篇博客是自己学习的总结,如果有哪里理解的不对的地方,希望大家可以指点. 一.C内存空间分布图 二.各内存区域详解 1.代码区(.text): 该区域主要存放二进制可执行文件. 2.数据区(.data ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值