C++笔记009:C++对C的扩展——“实用性”增加
原创笔记,转载请注明出处!
点击【关注】,关注也是一种美德~
笔记八中已经说到:在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。
C语言中的变量都必须在作用域开始的位置定义!
C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。
我们用VC++6.0和VS2010进行演示。
先用VC++6.0建立一个.c的文件
#include<stdio.h>
void main()
{
int i;
int k;
printf("hello world\n");
i=10;
k=10;
printf("i:%d k:%d\n",i,k);
}
运行程序:
hello world
i:10 k:10
请按任意键继续. . .
运行没有问题,但是C语言里面如果把变量k的定义放到一条不是定义语句后面,那么运行就会报错。
#include<stdio.h>
void main()
{
int i;
//int k;
printf("hello world\n");
int k; //错误
i=10;
k=10;
printf("i:%d k:%d\n",i,k);
}
同样的代码我们用VS2010建立一个.cpp文件,运行程序没有问题:
我们还注意到,在.c文件中没有“system(“pause”)”语句,我们运行程序后显示窗口不会一闪而过,而在.cpp文件中我们如果没有这个语句显示窗口就会一闪而过。
#include<iostream>
using namespace std;
void main()
{
int i;
//int k;
printf("hello world\n");
int k;
i=10;
k=10;
printf("i:%d k:%d\n",i,k);
system("pause");
}
原创笔记,转载请注明出处!
更多精彩请关注微信公众号:依法编程

C++笔记009:C++对C的扩展——“实用性”增加的更多相关文章
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()->user
我参考了这篇文章来构建项目的前台和后台的目录结构.感谢Andy的这篇文章.按照所有的步骤,您将有单独的前台和后台面板,如: http://localhost/index.php // 前台 http: ...
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...
- JavaScript学习笔记--ES6学习(四) 字符串的扩展
ES6对字符串进行了一些扩展,主要表现在对Unicode 大于\uFFFF的字符的处理上. 1. ES6中字符的Unicode表示方法 在ES5中,字符串的Unicode表示方法: \uxxxx . ...
- JavaScript学习笔记--ES6学习(五) 数值的扩展
ES6 对于数值类型 (Number) 进行了一下扩展: 1.对于二进制和八进制提供了新的写法 ES6对于二进制和八进制的数值提供了新的写法,分别用0b (或者0B) 和0o (或者0o) 表示.例如 ...
- objective-C学习笔记(十一)类别和扩展
类别 类别是对外的,外部都可以访问 类别是在没有源代码或者基于某些特定场合的情况下,为一个类增加功能(方法).或者用于给一个特别大的类进行分割. 命名规则:类名+扩展方法,如NSString 可以添加 ...
- PHP7 学习笔记(五)安装event扩展(libevent)
一.描述:有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口. 二.下载地址:http://pecl.php.net/package ...
- C++深度解析教程学习笔记(3)函数的扩展
1.内联函数 1.1.常量与宏的回顾 (1)C++中的 const 常量可以替代宏常数定义,如: ; //等价于 #define A 3 (2)C++中是否有解决方案,可以用来替代宏代码片段呢? 1. ...
- ES6学习笔记(二)——数组的扩展
扩展运算符 ... 将数组转化成用逗号分隔的参数序列 * 扩展运算符背后调用的是遍历器接口(Symbol.iterator),如果一个对象没有部署这个接口,就无法转换. 应用 1. 合并数组 2. 将 ...
随机推荐
- easyui 删除行的时候 引起的 bug
问题场景 easyui 编辑里 有删除行的功能 文档提供的方法如下 $aplgrid为grid 的容器 ind 为当前行的索引 $aplgrid.datagrid('deleteRow', ind); ...
- Java入门到精通——调错篇之Astah Community打开报需要jre1.7运行环境
1.问题概述 Astah Community安装完以后点击运行Astah Community的时候报此应用需要jdk1.7如下图 但是我的电脑在D盘装了jdk1.8了为什么这个软件为什 ...
- 24_BlockingQueue接口
[BlockingQueue常见] [ ArrayBlockingQueue ] 基于数组的阻塞队列的实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,其 ...
- dubbo学习总结二 服务端
服务端主要执行对底层数据库的操作 主要分层为 api +dao+ filter+ util+... 首先 dubbo 服务端有一个dubbo配置文件 dubbo:application 定义应用名称 ...
- Django 和 struts 对比
转自:http://www.blogjava.net/shaofan/archive/2007/04/06/109007.html 假设:用两者写一个最小的WEB程序.过程可以参照:1.struts的 ...
- SQL Server ->> SQL Server 2016新特性之 -- AlwaysOn的增强改进
1)标准版也开始支持AlwaysOn了,只不过限制太多,比如副节点不能只读访问和只能有一个副节点. 2)副节点(只读节点)的负载均衡,这是我认为最有用的改进 3)自动failover的节点从2个增加到 ...
- request.getRequestDispatcher().forward(request.response)
request.getRequestDispatcher().forward(request.response)中的那两个参数是哪里来的? 2010-11-09 23:13 QQ357169111 | ...
- 事件循环进阶:macrotask与microtask
这段参考了参考来源中的第2篇文章(英文版的),(加了下自己的理解重新描述了下), 这里没法给大家演示代码,我就简单说下我的理解吧. promise和settimeout 在一起的时候执行顺序是个有意思 ...
- JS如何将变量作为一个对象的Key
var lastWord = 'last word'; var a = { 'first word': 'hello', [lastWord]: 'world' }; a['first word'] ...
- ubuntu install chrome
sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ wget -q -O - h ...