精华内容
下载资源
问答
  • c语言中运算符有哪几种,优先级顺序是怎样 C语言中,运算bai符除了常见三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务运算符。 运算符运算优先级共分为15 级,1 级最高,15 级...

    c语言中运算符有哪几种,优先级顺序是怎样

    C语言中,运算bai符除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符。

    运算符的运算优先级共分为15 级,1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

    一级运算符:标识,常量,字符串文字量,优先级提升表达式最优先执行。

    二级运算符:数组下标运算(expression)、函数调用(argument-expression-list)、成员访问(identifier、 -> identifier)、后缀自增(i++)、后缀自减(i–)、 复合初始化(initializer-list)。
    相关文章:http://www.xdy666.com/
    三级运算符:前缀自增(++i)、前缀自减(–i)、单目转型表式式(取地址& ,提领 * , 正号+ ,负号-、 位反~ 逻辑否!)、求类型长度(sizeof unary-expression)。

    四级运算符:强制表达式成为type-name指定的类型( type-name ) cast-expression。

    五级运算符:“ * ” 乘法运算符。

    六级运算符:“ + ”加法运算符。

    七级运算符:<< 左移运算符;>> 右移运算符。

    八级运算符:<、<=、>、>=关系运算符。

    九级运算符:“ == ”等于运算符;“ != ”不等于运算符。

    十级运算符:“ & ”按位与运算符。

    十一级运算符:“ ∧ ”按位异或运算符。

    十二级运算符:“ | ”按位或运算符。

    十三级运算符:“&&”逻辑与运算符。

    十四级运算符:“ || ”逻辑或运算符。

    十五级运算符:? :条件运算符。
    参考文章:http://www.jieba8.com/

    展开全文
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    *3.4 这样一个巧妙的表达式:a^=b^=a^=b;它不需要临时变量就可以交换a和b的值。 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序呢? ...
  • C语言圣经

    2007-05-29 13:10:18
    全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。  本书的讲述深入浅出,配合典型...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...
  • C语言编程要点

    2017-09-18 00:10:37
    9.5. 通过指针或带下标数组名都可以访问数组中元素,方式更好呢? 141 9.6. 可以把另外一个地址赋给一个数组名吗? 143 9.7. array_name和&array_name什么不同? 144 9.8. 为什么用const说明常量不能用来...
  • *3.4 这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。 34 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序...
  • C语言的数据输入也是由函数语句完成的。 本节介绍从标准输入设备—键盘上输入数据的函数scanf和getchar。 scanf函数 scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 一、...
  • 你必须知道495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.4 这是个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可 以交换a 和b 的值。. . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 我可否用括号来强制执行我所需要的计算顺序? . . . . . . . . ....
  • o 4.4 这是个巧妙的表达式: a ^= b ^= a ^= b 它不需要临时变量就可以交换 a 和 b 的值。 o 4.5 我可否用括号来强制执行我所需要的计算顺序? o 4.6 可是 && 和 || 运算符呢?我看到过类似 while((c = getchar())...
  • 有人在赛前预测A、B、C、D、E...则这最后结果有哪几种可能? 六个猜测用表达式表示为:(a==1)+(b==2)+(c==3)+(d==4)+(e==5)+(f==6) = 3 , 则我们可以分别另每一项(x==m)为Ai (1 #include "stdio.h" #include "s

    有人在赛前预测A、B、C、D、E、F六名选手在比赛中会按顺序分别获得第一名到第六名,但是这一预测值猜对了三人的名次。则这最后的结果有哪几种可能?

    六个猜测用表达式表示为:(a==1)+(b==2)+(c==3)+(d==4)+(e==5)+(f==6) = 3 , 则我们可以分别另每一项(x==m)为Ai (1<=i<=6),则 Ai 只有0或者1两种取值,那么我们就可以用如下程序穷举出所有的可能结果。

    #include "stdio.h"

    #include "stdlib.h"

    #define Max 2 // 指出 a b c d e f 的可能情况数目

    int main(int argc,char *argv[])

    {

        // a b c d e f 分贝意味着各自取得相应名次的可能性,即 0 或者 1

        int a = 0 , b = 0, c = 0, d = 0, e = 0 ,f = 0;

        int num = 0 ; // 用来记录所有可能出现的结果数目

        // 穷举 a b c d e f 的可能性,每一个都有两种可能,则进行 2 的 6 次放穷举

        for( a = 0 ; a < Max ; a ++)

        {

                for( b = 0 ; b < Max ; b ++)

                {

                        for(c = 0 ; c < Max ; c ++)

                        {

                              for(d = 0 ; d < Max ; d ++)

                              {

                                    for(e = 0 ; e < Max ; e ++)

                                    {

                                          for(f = 0 ; f < Max ; f++)

                                          {

                                                if( (a + b + c + d + e + f) == 3 )

                                                {

                                                    num ++ ; // 对可能的结果进行计数

                                                    printf("这是第 %d 个可能的结果\n",num);

                                                    // 打印出可能的结果

                                                    if(a)

                                                    printf("a == 1\n");

                                                    if(b)

                                                    printf("b == 2\n");

                                                    if(c)

                                                    printf("c == 3\n");

                                                    if(d)

                                                    printf("d == 4\n");

                                                    if(e)

                                                    printf("e == 4\n");

                                                    if(f)

                                                    printf("f == 5\n");

                                                }

                                          }

                                    }

                              }

                        }

                }

        }

        printf("总共有 %d 个可能出现的结果\n",num);

        system("pause");

        return 0 ;

        }


    展开全文
  • 3.语句有哪几种表达式语句、函数调用语句、控制语句、复合语句、空语句。 4.哪些语法元素需要遵循标识符命名规则? 标识符命名规则即:必须用字母/下划线开头;只有下划线、字母、数字...

    C的语法规则。

    1.源文件中所有函数定义之外可以出现哪些语法元素?
    全局变量、函数原型声明、宏定义、typedef和结构体、联合体定义、注释…
    2.函数定义之中可以出现哪些语法元素?
    局部变量定义,语句块,注释…
    3.语句有哪几种?
    表达式语句、函数调用语句、控制语句、复合语句、空语句。
    4.哪些语法元素需要遵循标识符的命名规则?
    标识符的命名规则即:必须用字母/下划线开头;只有下划线、字母、数字的组合;不能是关键字。
    函数名、变量名、类型名…
    5.表达式由哪些语法元素组成?
    由操作数和运算符按照一定的语法规则组成。
    6.到目前为止学过哪些运算符?它们的优先级和结合性是怎样的?
    <1>算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(–)共七种。

    <2>赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
    
    <3>逗号运算符:用于把若干表达式组合成一个表达式(,)。

    <4>关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

    <5>逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

    <6>条件运算符:这是一个三目运算符,用于条件求值(?:)。

    <7>位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

    <8>指针运算符:用于取内容(*)和取地址(&)二种运算。

    <9>求字节数运算符:用于计算数据类型所占的字节数(sizeof)。

    <10>特殊运算符:有括号(),下标[],成员(→,.)等几种。
    在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求:

    • 在算术表达式中,可使用多层圆括号,但括号必须配对。运算时从内层圆括号开始,由内向外依次计算各表达式的值。
    • 在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,若表达式中运算符的优先级相同,则按运算符的结合方向进行运算。
    • 如果一个运算符两侧的操作数类型不同,则先利用自动转换或强制类型转换,使两者具有相同类型,然后进行运算。

    7.哪些运算符取操作数的左值?哪些运算符的操作数必须是整型?哪些运算符有Side Effect?
    取地址运算符、++运算符、–运算符、赋值运算符的左侧、成员运算符的左侧取操作数要求是左值。
    取模运算符(%)的操作数必须是整型;
    当运算符改变了操作数时就可能有副作用,如前自增、赋值。
    8.哪些表达式可以做左值?哪些表达式只能做右值?
    函数调用表达式和强制转换表达式的结果,在C中都属于右值,结果为引用的函数调用表达式和强制转换表达式都属于左值。

    思维方法与编程思想

    以概念为中心;组合规则;充分条件与必要条件;布尔逻辑;递归;迭代;分而治之;折半查找;回溯;

    调试方法

    编译错误、运行时错误与语义错误;
    增量式开发;
    打印语句与Scaffold;
    gdb
    DbC与Assertion

    展开全文
  • (31) 算法一般都可以用哪几种控制结构组合而成______。(D) A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 (32) 数据存储结构是指______。(B) A. 数据所占存储空间量 B. ...
  • (31) 算法一般都可以用哪几种控制结构组合而成(D) 注:P3 A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 (32) 数据存储结构是指(B) 注:P13,要牢记 A. 数据所占存储空间量...
  • C语言的数据类型分哪几类?C语言哪些数据类型? 基本数据类型当然还包括int的一些修饰符。像short、long、long long、unsigned。typedefine给已的数据类型取一个别名。 C语言还新增了一些数据类型:BOOL类型...

    对比一下OC和C差别,首先第一个是数据类型。

    C语言的数据类型分哪几类?C语言有哪些数据类型?

    基本数据类型当然还包括int的一些修饰符。像short、long、long long、unsigned。typedefine给已有的数据类型取一个别名。


     C语言还新增了一些数据类型:BOOL类型。条件表达式:比较表达式/关系表达式,第二种是逻辑表达式.C语言用int类型的变量来表示比较表达式/关系表达式和逻辑表达式的结果。0表示不成立,非0表示成立。

     

           3).   BOOL的本质.
        
                     typedef signed char BOOL;
     
                     实际上BOOL类型的变量  是1个有符号的char变量.

    所以BOOL b1在内存当中是占1个字节。OC所谓的新增数据类型99.99%的情况下都是typedef

        BOOL b2 = YES;
        char b3  =  1;

    所以这两句话在内存上没有任何区别。BOOL类型的可读性高一些。所以从今天开始要存储一个条件表达式的结果,请你使用BOOL类型。OC当中新增的第一个类型:BOOL类型。

     BOOL的本质.
        
                     typedef signed char BOOL;
     
                     实际上BOOL类型的变量  是1个有符号的char变量.
     
                     #define YES ((BOOL)1)
                     #define NO  ((BOOL)0)
     
                     YES  实际上就是   1
                     NO   实际上就是   0

    Boolean类型的本质:

    typedef unsigned char                   Boolean;

    Boolean其实是一个无符号的char类型.

    true和false更直接,他们两个其实是两个宏.

    #define true 1
    #define false 0

    这句话

    Boolean b1 = false;

    在预编译的时候已经换成了这句话

    unsigned char b1 = 0;

    所以可以给Boolean类型的变量赋一个数字给它,包括0和1.因为Boolean类型的变量b1是char类型.

        //Boolean b1 = 0;
        Boolean b1 = 10;
        //Boolean b1 = 1;
        //Boolean b1 = 20;

    为什么要搞个Boolean类型的变量?因为可读性高一些。


    现在要表示一个条件表达式有两种,一个是BOOL,一个是Boolean.用哪个呢?但是记住要用BOOL类型,因为BOOL类型(布尔类型)四个字母就搞定了,简洁明了.绝大部分情况我们都是使用布尔BOOL.为什么有了布尔类型BOOL还要搞一个Boolean类型呢?因为它要吸引别的程序员。有的编程语言里面叫BOOL,有的编程语言里面叫Boolean.例如C#叫BOOL,java里面叫Boolean.这样它就可以吸引别的语言的程序员过来。我们平时就用BOOL.


    这就是OC在C语言基础之上新增的两个数据类型:BOOL和Boolean。.


    /*
       1.  OC中的数据类型.
     
             1).  OC中支持C语言中的所有的数据类型.
            
                  a.  基本数据类型
                    
                      int  double  float  char
                  
                  b.  构造类型
     
                      数组  结构体   枚举
     
                  c.  指针类型
                      int *p1;
     
                  d.  空类型.
                      void
     
                  e.  typedef自定义类型.
     
                 
               2).   BOOL类型.
     
                     1). 可以存储YES或者NO中的任意1个数据.
       
                     2). 一般情况下BOOL类型的变量用来存储条件表达式的结果.如果条件表达式成立 那么结果就是YES
     
                         如果条件表达式不成立  结果就是NO
     
                     3).   BOOL的本质.
        
                     typedef signed char BOOL;
     
                     实际上BOOL类型的变量  是1个有符号的char变量.
     
                     #define YES ((BOOL)1)
                     #define NO  ((BOOL)0)
     
                     YES  实际上就是   1
                     NO   实际上就是   0
               3).   Boolean
                     a.Boolean类型的变量可以存储true或者false
                     b.一般情况下BOOL类型的变量用来存储条件表达式的结果.如果条件表达式成立 那么结果就是true
                       如果条件表达式不成立  结果就是false
                     c.本质
                       typedef unsigned char                   Boolean;
                
               4).  class类型.  类.
     
            
               5).  id类型   万能指针.
     
     
               6).   nil   与NULL差不多.
     
               7).   SEL  方法选择器.
     
               8).   block  代码段.
     
     
          
     
     */
    
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        //int num = 12;
        int num1 = 10;
        int num2 = 20;
        //BOOL  b1 = YES;
        //Bool b1 = NO;
        //BOOL b1 = mum1 > num2;//条件表达式的结果就可以存在b1这个变量里面去了
        //BOOL b2 = YES;
        //char b3  =  1;
        //Boolean b1 = num1 > num2;
        //Boolean b1 = false;
        //Boolean b1 = 0;
        Boolean b1 = 10;
        //Boolean b1 = 1;
        //Boolean b1 = 20;
        //unsigned char b1 = 0;
        }
        return 0;
    }

     

    转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7136948.html

    展开全文
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    面试题138 有哪几种实现方式 156 面试题139 链表有哪几种分类 157 13.2 队列 159 面试题140 什么是队列 159 13.3 栈 160 面试题141 什么是栈 160 面试题142 如何访问栈中元素 162 13.4 树 162 面试题143 树...
  • 如何选择使用循环?首先,确定是需要入口条件循环还是出口条件循环。通常,入口条件循环用得比较多,有几个原因。其一,一般原则是在执行循环之前测试条件比较好。其二,测试放在循环开头,程序可读性更高...
  • 这里指示了main.o目标依赖于哪几个源文件,我们只要把这一行内容,通过makeinclude指令包含到makefile文件里,即可在其任意一个依赖文件被修改后,重新编译目标main.o。 下面详解如何生成这个.d文件。 (二) ...
  • 9.5 通过指针或带下标数组名都可以访问数组中元素,方式更好呢? 9.6 可以把另外一个地址赋给一个数组名吗? 9.7 array_name和&array;_name什么不同? 9.8 为什么用const说明常量不能用来定义...
  • 2、 讨论参数传递的几种形式。 实验八 数组(1) [实验目的] 掌握有关数组和字符串程序设计方法。 [实验内容和步骤] 1 已知一组数据如下: 6,3,42,23,35,71,98,67,56,38 编写程序,把它们按从小到大...
  • 大话数据结构

    2018-12-14 16:02:18
    于是商品房就出现了各种各样户型,有几百平米别墅,也仅两平米胶囊公寓…… 1.6.1数据类型 11 1.6.2抽象数据类型 12 1.7总结回顾 14 1.8结尾语 15 最终结果一定是,你对着别人很牛说“数据结构——...
  • 新手学习C++入门资料

    2008-12-28 23:58:50
    主体:(一)与C语言的区别> 一、C++概述 (一) 发展历史 1980年,Bjarne Stroustrup博士开始着手创建一模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

c语言的表达式有哪几种

c语言 订阅