C-1 简单数据类型转换, scanf缓冲区, 逗号表达式

关于类型转换:

1.int

如果是超出了int的范围,会溢出

如果超出了太多,报错

如果是一个小数,只会截取整数部分, 不会四舍五入

2.float

如果是一个double类型的小数,double→float

如果是一个int类型的整数,int→float

3.double

如果是一个float,float→double

如果是一个int,int→double

4.char

自动转换的顺序是: char → int → float → double

scanf缓冲区问题

在接收输入的时候,scanf会把所有输入存在缓冲区,依次接收,而不会按照语句中的各个类型进行接收,尤其是数字型数据和字符行数据混合输入的时候,很容易把空格和回车存到字符变量中。

解决办法:

1.定义一个专门的字符串数组或者变量来接收多余的空格和回车

2.利用rewind(stdin);清空缓冲区

面试题1

两数交换不定义temp变量的方法

1.

1 num1 = num1 + num2;
2 num2 = num1 - num2;
3 num1 = num1 - num2;

2.

1 num1 = num1 ^ num2;
2 num2 = num1 ^ num2;
3 num1 = num1 ^ num2;

逗号表达式

逗号表达式的目的,并不是想要前面表达式的结果

如:

int i = 0, j = 1, k = 2;

或者只是想要逗号前面的表达式执行, 然后要最后一个表达式的结果

这时候和分开写没有什么区别, 只是单纯的减少了代码行数;

前面的表达式只要求其执行,并不关心其结果

关心的只是前面的变化完以后,最后一个表达式的结果

复合赋值运算符:

int num += 10 → int num = num + 10;  减法, 乘法, 除法同理;

自增自减运算

++,   - -,

  1. 无论是放在左还是右, 其最后都会+1, 或者-1;
  2. 在左: 先将自身的值取出来, 作为整个表达式的结果, 然后再自增(减)
  3. 在右: 先将自增(减), 然后再将自身的值取出来作为表达式的结果
时间: 2024-10-10 05:59:38

C-1 简单数据类型转换, scanf缓冲区, 逗号表达式的相关文章

简单数据类型转换

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleProgamming{    class Program    {        static void Main(string[] args)        {            //简单数据类型转换            //为什么要使用数据类型转换?因为C#中Console.ReadLine

Java中数据类型转换

1.Java的数据类型分为三大类 布尔型,字符型和数值型 其中数值型又分为整型和浮点型 2.Java的变量类型 布尔型 boolean 字符型 char 整型    byte,short,int,long 浮点型 float,double 3.数据类型转换 Java中数据类型转换分为三种,简单数据类型转换,字符串与其他类型转换,其他实用数据类型转换 (1)简单数据类型转换 在Java中,整型,实型,字符型被视为简单数据类型. 这些类型级别从低到高:(byte,short,char)-> int

Util应用程序框架公共操作类(一):数据类型转换公共操作类(介绍篇)

本系列文章将介绍一些对初学者有帮助的辅助类,这些辅助类本身并没有什么稀奇之处,如何能发现需要封装它们可能更加重要,所谓授之以鱼不如授之以渔,掌握封装公共操作类的技巧才是关键,我会详细说明创建这些类的动机和思考过程,以帮助初学者发现和封装自己需要的东西.创建公共操作类的技巧,大家可以参考我的这篇文章——应用程序框架实战十二:公共操作类开发技巧(初学者必读). 封装公共操作类,不仅要把技术上困难的封装进来,还需要不断观察自己的代码,以找出哪些部分可以更加简化.本文将介绍一个容易被大家所忽视的东西——

                    逗号表达式与自增自减运算符和类型转换的规则

逗号运算符 逗号运算符优先级最低: 逗号运算符是用来分割多个表达式的: 由逗号运算符组成的逗号表达式的运算结果是:最后一个表达式的结果 注意: int i: i = 3,4,5,: 以上语句得到的i的值为3 i = (3, 4, 5); 得到的i的值为5 总结: ++i置前自增:先对i的值加1,然后用增1后的值参加所有的后续运算 i++滞后自增自减:先用变量原来的值参加所有的后续运算,直到本条语句所有的运算全部运算完毕后,才对变量值加减1 滞后自增减在条表中的特殊表现:先利用原值参与条件判断,然

Objective-C数据类型、数据类型转换

数据类型 1.Objective-C数据类型可以分为:基本数据类型.对象数据类型和id类型. 2.基本数据类型有:int.float.double和char类型. 3.对象类型就是类或协议所声明的指针类型,例如: NSAutoreleasePool *pool ,其中,NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型或叫对象类型. 4.id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型,所以刚才的变量可以声明pool也可以声明为id

JS 数据类型转换

JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 在 判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串.parseInt()方法首先查看位置0处的 字符,判断它是否是个有效

JS 之 数据类型转换

      首先我们来简单了解一下JS中的数据类型,JavaScript拥有字符串.数字.布尔.数组.对象.Null.Undefiend 6中数据类型.同时,JavaScript拥有动态类型.也就是说相同的变量可以作不同的类型: 接下来咱们就介绍一下JavaScript中数据类型转换的几种类型转换: 1.转换函数 JavaScript提供了parseInt()和parseFloat()两个转换函数.其中parseInt()把值转换成整数,parseFloat()把值转换成浮点数,并且这两个函数的

Android技术10:Java与C语言之间简单数据的传递

由于C语言和Java语言之间很多类型不一致性,因此使用native时,需要数据类型转换.下面演示分别传递整型,字符串,整型数组,Java静态方法传递数据. 1.创建native方法 我们单独创建一个NativeClass类来存放native方法 1 package com.forsta.ndk; 2 3 public class NativeClass { 4 public native int add(int x,int y); 5 public native String showStrin

语法》第九章 数据类型转换

第二部分  语法 ************第九章 数据类型转换 *************** JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值. 虽然变量没有类型,但是数据本身和各种运算符对运算子是有类型要求的.如果运算符发现,数据的类型与预期不符,就会自动转换类型.比如,减法运算符预期两侧的运算子应该是数值,如果不是,就会自动将它们转为数值. JS有一套数据类型自动转换的规则 一.强制转换 强制转换主要指使用Number.String和Boolean三个构造函数