当前位置: 首页 > news >正文

《C和C++代码精粹》——1.16 语句声明

本节书摘来自异步社区出版社《C和C++代码精粹》一书中的第1章,第1.16节,作者: 【美】Chuck Allison,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.16 语句声明

C和C++代码精粹
在C++中,声明可以出现在语句可以出现的任何地方。这就意味着不必在程序块的开始进行一组声明,而可以在第一次使用对象时定义它。例如,程序清单1.17中数组a在整个函数体中都是可见的,但是n直到声明后才有效,而i直到下一行才有效。注意i在第二次for循环中被再次声明,这说明了在循环中声明的变量的作用域是该循环本身。

程序清单1.17 声明是语句

// declare.cpp  
#include <iostream>  
using namespace std;  

main()  
{  
    int a[] = {0,1,2,3,4};  

//打印地址和大小  
    cout << "a == " << (void *) a << endl;  
    cout << "sizeof a == " << sizeof a << endl;  

//顺序打印  
    size_t n = sizeof a / sizeof a[0];  
    for (int i = 0; i < n; ++i)  
        cout << a[i] << ' ';  
    cout << endl;  

//倒序打印  
    for (int i = n-1; i >= 0; --i)  
        cout << a[i] << ' ';  
    cout << endl;  
}  

//输出:  
a == 0xffec  
sizeof(a) == 10  
0 1 2 3 4   
4 3 2 1 0

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章:

  • C#模拟提交表单 post-带附件的表单
  • 《HTML 5与CSS 3权威指南(第3版·下册)》——20.2 插入图像文件
  • 【精华转帖】刷新后重新定位到DataGrid操作行
  • 堆(HEAP)与栈(STACK)的区别
  • 《Cadence 16.6电路设计与仿真从入门到精通》——1.2 Cadence软件的安装  方块...
  • 《像计算机科学家一样思考Python》——3.2 类型转换函数
  • 在webform中清空多个控件的值的简单方法
  • 《Python Cookbook(第3版)中文版》——1.13 通过公共键对字典列表排序
  • Linux有问必答:如何强制在下次登录Linux时更换密码
  • 2007-12-25是个值得纪念的日子,我用纯C语言开发的空间首次上线测试!
  • 《SOA达人迷》—第1章1.7节理解SOA的不同之处
  • AJAX 类似电子表格的功能实现---(续采购授权系统)
  • 《ArcGIS Engine 地理信息系统开发从入门到精通(第二版)》——第6章 空间数据管理 6.1 SDE及空间数据...
  • 《树莓派实战秘籍》——1.15 技巧15连接GPIO脚到面包板上
  • Solr调优参考
  • 【刷算法】求1+2+3+...+n
  • AHK 中 = 和 == 等比较运算符的用法
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • miaov-React 最佳入门
  • Phpstorm怎样批量删除空行?
  • Python进阶细节
  • SpringBoot几种定时任务的实现方式
  • Sublime text 3 3103 注册码
  • Swoft 源码剖析 - 代码自动更新机制
  • Zepto.js源码学习之二
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 给初学者:JavaScript 中数组操作注意点
  • 机器学习学习笔记一
  • 理解在java “”i=i++;”所发生的事情
  • 前端技术周刊 2019-01-14:客户端存储
  • 用Canvas画一棵二叉树
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • (六)vue-router+UI组件库
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)利用webkit抓取动态网页和链接
  • .NET 8.0 发布到 IIS
  • .net framework4与其client profile版本的区别
  • .Net Redis的秒杀Dome和异步执行
  • .NET 常见的偏门问题
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @Async注解的坑,小心
  • @EnableWebMvc介绍和使用详细demo
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [BZOJ]4817: [Sdoi2017]树点涂色