精华内容
下载资源
问答
  • 7.1.2 结构体类型变量的定义方法及其初始化 7.1.3 结构体变量的引用 7.1.4 结构体数组 7.1.5 指向结构体变量的指针 7.1.6 结构体类型数据作为函数参数 *7.1.7 动态分配和撤销内存的运算符new和delete 7.2 共用 ...
  • MFC程序框架剖析

    2015-03-05 09:53:19
    们之间纽带仅仅在于这个C++窗口类内部的成员变量m_hWnd,该变量保存了与这个C++窗口类对象相关哪个窗口 句柄 (3)但是,当C++窗口类对象销毁时,与之相关窗口也将销毁,因为它们之间纽带m_hWnd已经断了 3、...
  • 7.1.2 结构体类型变量的定义方法及其初始化 7.1.3 结构体变量的引用 7.1.4 结构体数组 7.1.5 指向结构体变量的指针 7.1.6 结构体类型数据作为函数参数 *7.1.7 动态分配和撤销内存的运算符new和delete 7.2 共用 ...
  • 函数体中也有类型说明, 这是对函数体内部所用到的变量的类型说明。很多情况下都不要求无参函数有返回值, 此时函数类型符可以写为void。 我们可以改为一个函数定义: void Hello() { printf ("Hello,world \n...
  • 空间,这些内容决定了变量在程序哪些部分是可见。 第10章:对象和类 类是用户定义的类型,对象(如变量)是类实例。本章介绍面向对象编程和类设计。对象声明描述是存 储对象中信息以及可对对象执行...
  • 空间,这些内容决定了变量在程序哪些部分是可见。 第10章:对象和类 类是用户定义的类型,对象(如变量)是类实例。本章介绍面向对象编程和类设计。对象声明描述是存 储对象中信息以及可对对象执行...
  • 空间,这些内容决定了变量在程序哪些部分是可见。 第10章:对象和类 类是用户定义的类型,对象(如变量)是类实例。本章介绍面向对象编程和类设计。对象声明描述是存 储对象中信息以及可对对象执行...
  • 空间,这些内容决定了变量在程序哪些部分是可见。 第10章:对象和类 类是用户定义的类型,对象(如变量)是类实例。本章介绍面向对象编程和类设计。对象声明描述是存 储对象中信息以及可对对象执行...
  •  栈是一种线形集合,其添加和删除元素操作应在同一段完成。栈按照后进先出方式进行处理。 堆是栈一个组成元素 22、forward 和redirect区别  forward是服务器请求资源,服务器直接访问目标地址URL,把...
  • 5.语句 5.1简单语句 ...定义在块中的变量或名字只能内部以及嵌套块中子块访问 5.3条件语句 5.3.1 if-else语句 悬垂else else总是与离他最近尚未匹配if匹配,建议使用花括号{ }区分不同

    5.语句

    5.1简单语句

    ival+5;
    cout<<ival;//两句都是表达式语句
    ;//空语句,使用空语句时应加上注释
    ival=v1+v2;;//第二个分号表示一个空语句
    while();//循环体是空语句
    

    复合语句

    复合语句也称为,用{ }括起来的

    块不以分号作为结束

    5.2语句作用域

    定义在块中的变量或名字只能在块内部以及嵌套在块中的子块访问

    5.3条件语句

    5.3.1 if-else语句

    悬垂else

    else总是与离他最近的尚未匹配的if匹配,建议使用花括号{ }区分不同的if-else

    5.3.2 switch语句

    switch (变量)
    case   :
    
        break;
    case   :
    
         break;
    default:
    
         break;
    
    • case标签必须是一个整型常量表达式
    case 3.14://错误 3.14不是整型
    case 'a' ://正确,char类型可以转换成整型常量
    
    • case后面需要表达一个范围的值,比如元音字母
    switch(ch)
    {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            XXXX;
         break;
    }
    
    • 漏写break;

    如果某个case后面的执行语句漏写了break,则后面直接跳过case标签,依次执行对应的内容

    • default标签

    如果没有任何一个case标签能匹配上switch的值,程序执行default标签

    如果switch结构以一个空的default标签作为结束,则该default标签后面必须加上一条空语句或者空块

    • switch内部的变量定义

    不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一个位置

    case true:
    //因为程序可能绕开下面的初始化语句,所以switch语句不合法
      string file_name;//错误,控制流绕过一个隐式初始化的变量
      int ival=0;//错误,控制流绕过一个显式初始化的变量
      int jval;//正确,因为jval没有初始化
      break;
    case false:
      //jval虽然在作用域内,但是没有初始化
      jval=next_num();//正确,给jval赋值
      if(file_name.empty()) //file_name在作用域内,但是没有被初始化
    

    建议每个case标签后面加一个{ },限定作用域

    如上,如果case true下面不加{ },jval的作用域就是swtich 的{ }范围

    5.4迭代语句

    5.4.1 while语句

    while(condition)//condition不能为空
        statement
    //condition可以是一个带初始化的变量声明
    //如while(int i=get_num())
    

    5.4.2 for语句

    for( )这里叫做语句头,语句头定义的对象只能在for循环体内可见

    • for 语句头中可定义多个对象,但是所有变量的类型必须相同
    for(decltype(v.size()) i=0,sz=v.size();i!=sz,++i)
    
    • for语句头中的三个表达式都可以省略

    5.4.3范围for语句

    for(declaration:expression)
        statement
    //experssion必须是一个序列,比如数组,vector,string,用{}括起来的初始值列表
    for(auto c:str);
    for(auto &c:str);
    

    5.4.4 do while语句

    do
        statement
    while(condition);//condition使用的变量必须定义在循环体之外
    

    5.5跳转语句

    5.5.1 break语句

    负责终止离它最近的while,do while,for 或switch语句

    5.5.2 continue语句

    continue语句只能出现在for、while和do while循环内部

    continue表示中断当前迭代,进行下一次的迭代

    5.5.3 goto语句

    label:
         语句
             
             
    goto label;
    //goto语句和label标签必须位于同一个函数之内
    
    • goto语句不能将程序的控制权从变量的作用域之外转移到作用域之内
    goto end;
    int x=10;
    
    end:
    x=22;//错误,goto绕过了一个带初始化的变量定义
    

    向后跳过一个已经执行的定义是合法的

    • 跳回到变量定义之前意味着系统将销毁该变量,然后重新创建它;
    begin:
    int sz=get_size();
    if(sz<=0)
    {
        goto begin; //goto语句执行后销毁sz,sz将重新定义并初始化
    }
    

    5.6 try语句块和异常处理

    try
    {
        可能出现问题的代码
        if(出现失败)
            throw(表达式);
     //此语句块定义的变量无法在外部访问,在catch语句内也无法访问
    }
    catch(异常声明)
    {}
    catch(异常声明)
    {}
    
    //例
    try
    {
        if(item1.isbn()!=item2.isbn())
            throw runtime_error("Data must refer to same ISBN");
    }
    catch(runtime_error err)//runtime_error是一个异常类
    {
        cout<<err.what()<<endl;
    }
    

    寻找处理代码的过程:

    首先搜索抛出该异常的函数,

    如果没有找到匹配的catch子句,终止该函数,

    并在调用该函数的函数中继续寻找,

    如果还是没有找到catch子句,这个新的函数也被终止

    直到找到适当类型的 catch子句为止

    如果最终没有找到任何匹配的catch句子,则转到名为terminate的标准库函数,执行该函数会导致程序非正常退出

    如果一段程序没有try语句且发生了异常,系统会调用terminate函数并终止当前程序的执行

    • 标准异常类
    exception 最常见的问题
    runtime_error 只有在运行时才能检测出的问题
    range_error 运行时错误:生成的结果超出了有意义的值域范围
    overflow_error 运行时错误:计算上溢
    underflow_error 运行时错误:计算下溢
    logic_error 程序逻辑错误
    domain_error 逻辑错误:参数对应的结果值不存在
    invalid_argument 逻辑错误:无效参数
    length_error 逻辑错误:试图创建一个超出该类型最大长度的对象
    out_of_range 逻辑错误:使用一个超出有效范围的值
    

    我们只能以默认初始化的方式初始化exception、bad_alloc和bad_cast对象,不允许为这些对象提供初始值

    异常类型只定义了一个what成员函数,该函数没有形参,返回值是一个指向C风格字符串的const char* 返回的内容由编辑器决定

    展开全文
  • 外因:即射频干扰,它是以空间电磁场形式传递机器内部的导体(引线 或零件引脚)感生出相应干扰,可通过电磁屏蔽和合理布线/器件布局衰减 该类干扰;电源线或电源内部产生干扰,它是通过电源线或电源内...
  • Code Compl 代码大全

    2011-05-26 12:09:22
     处理好循环体  退出循环  检查端点  使用循环变量  循环应该有多长  16.3 轻松创建循环——由内而外  16.4 循环和数组关系  关键点  第17章 不常见控制结构  17.1 子程序中多个返回  17.2 递归  ...
  • 数据逻辑结构是对数据元素之间逻辑关系描述,它可以用一个数据元素集合和定义在此集合中若干关系来表示。数据逻辑结构有两个要素:一是数据元素集合,通常记为D;二是D上关系,它反映了数据元素之间...
  • javaSE代码实例

    2016-06-21 22:30:18
    15.2.1 局部内部的定义及创建 328 15.2.2 局部变量与局部内部类 329 15.2.3 静态方法中的局部内部类 331 15.3 静态内部类 332 15.3.1 语法规则 332 15.3.2 创建静态内部类的对象 332 15.3.3 静态/非...
  • php高级开发教程说明

    2008-11-27 11:39:22
    的变量名字、类型、定义位置清单,那么你就创建了一个类似于小电话簿东西,你想让你 清单成为什么样子呢?不同命名方案已发展起来了,它们有不同思想及各自优点和缺 点,这些方案一般分为两类:简短...
  • B) Java的类中可以有三类内容分别是数据的定义、基本输出语句、函数的定义。 C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。 D) Java语言中的多态的含义可以...
  • 12.3 构造函数中使用new时注意事项 12.3.1 应该和不应该 12.3.2 包含类成员逐成员复制 12.4 有关返回对象说明 12.4.1 返回指向const对象引用 12.4.2 返回指向非const对象引用 12.4.3 返回...
  • 2-10 执行完下列语句后,a、b、c三个变量的值为多少? a = 30; b = a++; c = ++a; 解: a:32 ; b:30 ; c:32; 2-11 一个for循环中,可以初始化多个变量吗?如何实现? 解: for循环设置条件的第一个";"前...
  • java 面试题 总结

    2009-09-16 08:45:34
    栈是一种线形集合,其添加和删除元素操作应在同一段完成。栈按照后进先出方式进行处理。 堆是栈一个组成元素 19、forward 和redirect区别 forward是服务器请求资源,服务器直接访问目标地址URL,把那个URL...
  • (IE,IP) 针对 AT89C52 单片机,头文件 AT89x52.h 给出了 SFR 特殊功能寄存器所有端口的定义。 C 语言编程基础: 1. 2. 3. 4. 十六进制表示字节 0x5a:二进制为 01011010B;0x6E 为 01101110。 如果将一个 16 位二...
  • pthread_create在循环中,几乎瞬间创建5个线程,但只有第1个线程有机会输出(或者第2个也有,也可能没有,取决于内核调度)如果第3个线程执行了exit,将整个进程退出了,所以全部线程退出了。 所以,多线程环境中,...
  • 在测试时发现程序死在循环之中,得到错误记录是"Bus Error"(总线出错),由此可以说明出现了内存操作异常。 经过跟踪变量值发现循环变量i阀值pSysHead->dbf_count数值为0xFFFFFFFF,该值是从被破坏内存...
  • PT80-NEAT开发指南v1.1

    2014-06-24 18:38:34
    应用程序关闭 .................................................................................................................................... 19 框架窗口 ...........................................

空空如也

空空如也

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

循环变量的定义应在循环体内部