//区别①:实用性增强
#include<iostream>
using namespace std;
//C语言中的变量都必须在作用域开始的位置定义!!
//C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。 void main(){
int a = ;
printf("ddddd");
int kk;//这样定义KK,C语言会在在VC6.0中会报错,在vs2013不会;但是c++却支持这种定义
system("pause");
}
//区别②:register关键字增强(C++版本)
#include<iostream>
using namespace std; //register关键字 请求编译器让变量a直接放在寄存器里面,速度快
//在c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容
//register关键字的变化
//register关键字请求“编译器”将局部变量存储于寄存器中
//C语言中无法取得register变量地址
//在C++中依然支持register关键字
//C++编译器有自己的优化方式,不使用register也可能做优化
//C++中可以取得register变量的地址
//C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。
//早期C语言编译器不会对代码进行优化,因此register变量是一个很好的补充。 void main(){
//在c++中,如果一个变量多次出现或者经常使用,c++编译器会自动对这个变量使用register做优化
//这里的i,c++编译器就会自动对i用register优化
//register int i = 0;
int i = ;
for (i = ; i < ; i++)
{
;
}
printf("register修饰变量的地址是%x\n", &i);
//C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。
//此时c++编译器会对i变量做处理,使得register对变量i的声明变得无效
system("pause");
}
//区别②:register关键字增强(C语言版本)
#include<stdio.h>
#include<stdlib.h>
#include<string.h> void main(){
register int i = ;
for (i = ; i < ; i++)
{
;
}
printf("register修饰变量的地址是%x\n",&i);// 打印 error C2103 : 寄存器变量上的“&”
//register关键字请求“编译器”将局部变量存储于寄存器中,寄存器上当然取不到内存的地址
//所以C语言中无法取得register变量地址 system("pause");
}

//区别③:全局变量检测增强(C++版本)
#include<iostream>
using namespace std; //在C++中,不允许定义多个同名的全局变量
//C++直接拒绝这种二义性的做法。
int g_var;
int g_var;
int g_var = ; void main(){
system("pause");
}

//区别③:全局变量检测增强(C语言版本)
#include<stdio.h>
#include<stdlib.h>
#include<string.h> //在C语言中,重复定义多个同名的全局变量是合法的
//C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上
int g_var;
int g_var;
int g_var=; void main(){ system("pause");
}

C++ c++与C语言的区别(实用性增强,register关键字增强,全局变量检测增强)的更多相关文章

  1. C语言基础(8)-const,volatile,register关键字

    1 const const是定义一个常量 2 volatile 代表定义一个变量,这个变量值可能在CPU指令之外被改变 volatile int a;//定义了一个volatile类型的int变量 通 ...

  2. 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介

    [源码下载] 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介 作者:webabcd 介绍不可或缺 Windows Native 之 ...

  3. JAVA和C语言的区别

    java语言和c语言的区别:                                      1 un 公司推出的Java 是面向对象程序设计语言,其适用于Internet 应用的开发,称为 ...

  4. 【转】 C语言深度解剖读书笔记(1.关键字的秘密)

    本文出处:http://blog.csdn.net/mbh_1991/article/details/10149805 开始本节学习笔记之前,先说几句题外话.其实对于C语言深度解剖这本书来说,看完了有 ...

  5. Java语言基础(二) Java关键字

    Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...

  6. C++ c++与C语言的区别(struct类型的加强,函数-变量类型加强,bool类型)

    //区别④:struct类型的加强(C++版本) #include<iostream> using namespace std; //C++中的struct是一个新类型的定义声明 //c+ ...

  7. python与其他语言的区别

    C 和 Python.Java.C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处 ...

  8. C++ c++与C语言的区别(三目运算符,const修饰符)

    //区别⑦:三目运算符(C++版本) #include<iostream> using namespace std; //三目运算符 C语言返回变量的值 C++语言是返回变量本身 void ...

  9. C++ c++与C语言的区别(空结构体)

    //区别⑨:空结构体声明(C++版本) #include<iostream> using namespace std; struct A{}; class B{}; void main() ...

随机推荐

  1. OC--第一个程序

    #import <Foundation/Foundation.h> //导入foundation.h文件 // C语言函数声明 void MyFun(BOOL bol); int main ...

  2. Mongodb在Windows上的配置

    1.打开mongodb的官网:https://www.mongodb.org/进行下载相应平台的安装包 2.我们选择最新版的3.2版本来下载,选择对应的操作系统版本来下载,这里选择windows Mo ...

  3. ubuntu下安装wireshark

    ubuntu下安装wireshark  download: http://www.wireshark.org/download.html   choose source code 安装编译工具: $s ...

  4. INFORMATICA 的部署实施 MTP&MTS

    软件开发的一般都有三个环境,开发环境,用户接受度测试环境,生产环境.我最近实施了从开发环境到生产环境的部署工作,在此跟大家分享一下. 大概步骤如下: 1 备份生产环境INFORMATICA 知识库  ...

  5. 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句

    如题: 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句不是一条关联查询语句. 例如: $list = $db->relation(true) ...

  6. 【node.js】安装express后,'express' 不是内部或外部命令的问题

    因express默认安装是最新的版本,已经是4.x.x的版本.而最新express4.0+版本中将命令工具分出来了,所以必须要安装express-generator,执行: D:\TOOLS\Node ...

  7. 使用SSIS包调度开发的包

    在项目中,开发完自己的packages之后,需要使用agentjob之类的服务来调度自己的package,当然我们也可以使用一个package来调度这些,下面就是我的一个简单的尝试. 没有设计得像Ag ...

  8. Mongodb 主从复制与副本集实验

    1.实验主从复制,并验证复制成功,抓图实验过程  Step1:创建相应的目录 Mkdir -p ./dbs/master Mkdir -p ./dbs/slave Step2:开启主服务 ./bin/ ...

  9. [转]Display PDF within web browser using MVC3

    本文转自:http://www.codeproject.com/Tips/697733/Display-PDF-within-web-browser-using-MVC Introduction I ...

  10. [转]Asp.NET MVC Widget开发 - ViewEngine

    本文转自:http://www.cnblogs.com/hsinlu/archive/2011/03/02/1968796.html 在Asp.NET开发博客类系统,我们经常都会用到Widget,像在 ...