精华内容
下载资源
问答
  • C语言 自增运算++

    2020-02-22 15:35:58
    对于++写法有两种形式,i++和++i两种形式,他们都表示在原来值基础上加1i++:在原值基础上加1(先将变量i给程序用,用完之后i值再增加1)++i:在原值基础上加1(先让i值加1,再将加1之后值给程序用)如:int...

    自增运算:++
    如:i++; //在原来值的基础上加1 //等价于:i = i+1;  简写成: i += 1;对于++的写法有两种形式,i++和++i两种形式,他们都表示在原来值的基础上加1i++:在原值基础上加1(先将变量i给程序用,用完之后i的值再增加1)++i:在原值基础上加1(先让i的值加1,再将加1之后的值给程序用)如:int i = 100;print(“i=%d\n”,i++);  //输出结果: i=100print(“i=%d\n”,++i);  //输出结果: i=102

    展开全文
  • 导读运算符多操作灵活是C语言的一大特色在诸多运算符中最容易出错便是自增自减运算符C语盲允许在一个表达式中使用两个以上赋值类运算...-其作用是使变量减小1有两种形式前置式与后置式 前置式++i先增加i再使用
  • 自增运算符(++),有两种书写形式,一个是在变量前: ++ num; 另一种在变量后 num++;他们作用是一样,但是优先级有很大差别。 注:优先级代表该运算符执行顺序,优先级越高越先执行。百度百科优先级表...

    Java、c语言等高级语言中自增和自减的作用基本一致,都是变量自身加一或减一。下面我只对自增进行说明,自减是类似的。

     

     

    自增运算符(++),有两种书写形式,一个是在变量前: ++ num;

    另一种在变量后 num++;他们的作用是一样的,但是优先级有很大的差别。

    注:优先级代表该运算符执行的顺序,优先级越高越先执行。百度百科优先级表如下:

     

     

    代码演示:

    public class Test {

    public static void main(String[] args) {

    int a = 1;

    int b = 0;

    b = a++;//等价于 b=a; a++;

    System.out.println("a=" + a + ",b=" + b);

    System.out.println("=====华丽的分割线=====");

    a = 1;//重新赋值为1

    b = 0;//重新赋值为0

    b = ++a;//等价于 a++;b = a;

    System.out.println("a=" + a + ",b=" + b);

    }

     

    }

    输出结果:

    a=2,b=1

    =====华丽的分割线=====

    a=2,b=2

    前加加优先级高先运算,后加加优先级低后运算;在c语言中这里的运算方式也是相同的。

    ===========================================================

     

    差异:

    Java代码:

    public class Test {

    public static void main(String[] args) {

    int a = 1;

    a = a++;

    System.out.println(a);//输出结果为1

      }

    }

    C语言代码:

    #include<stdio.h>

     

    void main() {

    int a = 1;

    a = a++;

    printf("%d",a);//输出结果为2

    }

    ===============================================================

    结论:

    Java中我们可样解释,后加加运算a先自身加一,然后再将没有运算的值赋给a,最终结果a==1。

    c语言中是按照优先级来运算的,后加加优先级低,a先赋值给a自身,然后a再加加,最终结果a==2;

    转载于:https://www.cnblogs.com/yxiaooutlook/p/7607071.html

    展开全文
  • Java++自增

    2016-11-11 14:02:00
    记得大学刚开始学C语言时,老师就说:自增两种形式,分别是i++和++i,i++表示是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我理解是不是错了: public ...

    记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++和++i,i++表示的是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我的理解是不是错了:

     

    public class Client 

    {

    public static void main(String[] args) 

    {

    int count =0;

    for(int i=0;i<10;i++)

    {

    count=count++;

    }

    System.out.println("count="+count);

    }

    这个程序输出的count等于几?是count自加10次吗?答案等于10?可以非常肯定地告诉你,答案错误!运行结果是count等于0。为什么呢? count++是一个表达式,是有返回值的,它的返回值就是count自加前的值,Java对自加是这样处理的:首先把count的值(注意是值,不是引用)拷贝到一个临时变量区,然后对count变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下:步骤1 JVM把count值(其值是0)拷贝到临时变量区。步骤2 count值加1,这时候count的值是1。步骤3 返回临时变量区的值,注意这个值是0,没修改过。步骤4 返回值赋值给count,此时count值被重置成0。

     

    “countcount=count++”这条语句可以按照如下代码来理解:

    public static int mockAdd(int count)

    {

    //先保存初始值

    int temp =count;

    //做自增操作

    countcount = count+1;

    //返回原始值

    return temp;

    于是第一次循环后count的值还是0,其他9次的循环也是一样的,最终你会发现count的值始终没有改变,仍然保持着最初的状态。 此例中代码作者的本意是希望count自增,所以想当然地认为赋值给自身就成了,不曾想掉到Java自增的陷阱中了。解决方法很简单,只要把 “count=count++”修改为“count++”即可。该问题在不同的语言环境有不同的实现: C++中“count=count++”与“count++”是等效的,而在PHP中则保持着与Java相同的处理方式。每种语言对自增的实现方式各不 同,读者有兴趣可以多找几种语言测试一下,思考一下原理。 下次如果看到某人T恤上印着“i=i++”,千万不要鄙视他,记住,能够以不同的语言解释清楚这句话的人绝对不简单,应该表现出“如滔滔江水”般的敬仰,心理默念着“高人,绝世高人哪”。

    转载于:https://www.cnblogs.com/guanghe/p/6054048.html

    展开全文
  • java自增运算

    2018-02-06 22:44:00
    记得大学刚开始学C语言时,老师就说:自增两种形式,分别是i++和++i,i++表示是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我理解是不是错了: public ...

    【转】Java的++自增

     

    记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++和++i,i++表示的是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我的理解是不是错了:

     

    public class Client 

    {

    public static void main(String[] args) 

    {

    int count =0;

    for(int i=0;i<10;i++)

    {

    count=count++;

    }

    System.out.println("count="+count);

    }

    这个程序输出的count等于几?是count自加10次吗?答案等于10?可以非常肯定地告诉你,答案错误!运行结果是count等于0。为什么呢? count++是一个表达式,是有返回值的,它的返回值就是count自加前的值,Java对自加是这样处理的:首先把count的值(注意是值,不是引用)拷贝到一个临时变量区,然后对count变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下:步骤1 JVM把count值(其值是0)拷贝到临时变量区。步骤2 count值加1,这时候count的值是1。步骤3 返回临时变量区的值,注意这个值是0,没修改过。步骤4 返回值赋值给count,此时count值被重置成0。

     

    “countcount=count++”这条语句可以按照如下代码来理解:

    public static int mockAdd(int count)

    {

    //先保存初始值

    int temp =count;

    //做自增操作

    countcount = count+1;

    //返回原始值

    return temp;

    于是第一次循环后count的值还是0,其他9次的循环也是一样的,最终你会发现count的值始终没有改变,仍然保持着最初的状态。 此例中代码作者的本意是希望count自增,所以想当然地认为赋值给自身就成了,不曾想掉到Java自增的陷阱中了。解决方法很简单,只要把 “count=count++”修改为“count++”即可。该问题在不同的语言环境有不同的实现: C++中“count=count++”与“count++”是等效的,而在PHP中则保持着与Java相同的处理方式。每种语言对自增的实现方式各不 同,读者有兴趣可以多找几种语言测试一下,思考一下原理。 下次如果看到某人T恤上印着“i=i++”,千万不要鄙视他,记住,能够以不同的语言解释清楚这句话的人绝对不简单,应该表现出“如滔滔江水”般的敬仰,心理默念着“高人,绝世高人哪”。

     
     
     

    转载于:https://www.cnblogs.com/liyuspace/p/8424593.html

    展开全文
  • 可以有以下几种形式: i++ 意思是:i 参与运算后,i 值再自增 1。 I-- 意思是:i 参与运算后,i 值再自减 1。 ++i 意思是:i 自增 1 后,再参与运算。 --i 意思是:i 自减 1 后,再参与运算。
  • C语言的科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    15.5.1 printf种形式 417 15.5.2 scanf函数 417 15.5.3 用scanf读入字符串 419 15.5.4 格式化i/o一个实例 420 15.5.5 使用scanf局限 423 小结 423 复习题 424 程序设计练习 425 第16章 记录 431 ...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    4.12 我看到了用指针调用函数不同语法形式。到底怎么回事? 4.13 通用指针类型是什么?当我把函数指针赋向void*类型时候,编译通不过。 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中...
  •  本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到一些问题。书中列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面主题,并...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    《你必须知道495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到一些问题。书中列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...
  • 4.12 我看到了用指针调用函数不同语法形式。到底怎么回事?  4.13 通用指针类型是什么?当我把函数指针赋向void*类型时候,编译通不过。 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中...
  • 4.12 我看到了用指针调用函数不同语法形式。到底怎么回事? 50 4.13 通用指针类型是什么?当我把函数指针赋向void *类型时候,编译通不过。 51 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针...
  •  其他指针问题 4.12 我看到了用指针调用函数不同语法形式。到底怎么回事? 4.13 通用指针类型是什么?当我把函数指针赋向void*类型时候,编译通不过。 4.14 怎样在整型和指针之间进行转换?能否暂时把整数...
  • 本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到一些问题。书中列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面主题,并分别...
  •  本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到一些问题。书中列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面主题,并...
  • 你必须知道495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.12 我需要根据条件把一个复杂表达式赋值给个变量中一 个。可以用下边这样代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ...
  • 本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到一些问题。书中列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面主题,并分别...
  • 本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到一些问题。书中列出了C用户经常问400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面主题,并分别...
  • 长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。 void main(){ int a=15; float b=138.3576278; double c=35648256.3645687; char d='p'; printf("a=%d,%5d,%o,%x\n",a,a,a,a); printf("b=%f,%lf,...
  • 难道在C语言中一个结构不能包含指向自己指针吗? o 2.7 怎样建立和理解非常复杂声明?例如定义一个包含 N 个指向返回指向字符指针函数指针数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示...
  • C语言入门系列之2.数据类型、运算符和表达式

    千次阅读 多人点赞 2020-04-16 14:14:10
    实型常量有十进制小数和指数形式两种,按指数形式存储,分为单精度、双精度和长双精度;字符型数据分为字符常量和字符变量,转义字符具有特定含义,字符串常量是双引号括起字符序列;需要对变量赋初值;变量类型...
  • 这种运算符以两种形式出现,出现在变量前面是前缀,出现在变量后面是后缀。 下面是一个小例子: 1 #include <stdio.h> 2 int main(void) 3 { 4 int age=20; 5 6 while(age++ <=65) 7 {...
  • java中i++ 与 i=i++区别

    千次阅读 2017-02-04 17:32:11
    记得大学刚开始学C语言时,老师就说:自增两种形式,分别是i++与++i,i++表示是先赋值后加1,++i是先加1后赋值。
  • java 中 i=i++

    2017-06-24 10:55:00
    记得大学刚开始学C语言时,老师就说:自增两种形式,分别是i++和++i,i++表示是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我理解是不是错了: ...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

c语言自增的两种形式

c语言 订阅