//区别①:实用性增强
#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. App开发流程之通用宏定义及头文件

    工欲善其事,必先利其器. 在正式实现各种炫酷的功能和UI前,做好准备工作是提高后续开发效率的必经之路. 所以,这个系列,我不是在各种堆技术,更关注的是“兵马动”之前的“粮草行”,有些繁琐,但当清晰理出 ...

  2. UnityShader之固定管线Fixed Function Shader【Shader资料3】

    Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况.使用的是ShaderLab语言,语法与微软的FX files 或 ...

  3. UIButton 内部介绍

    **     设置内容距btn边框距离     **/    btn.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);        /** 将lab ...

  4. iOS支付宝集成详细流程

    实现支付宝支付的准备工作: 1.向支付宝签约,成为支付宝的商户 签约完成后,支付宝会提供一些必要的数据给我们 商户ID:partner 账号ID:seller 即支付宝账号 签约需要营业执照 2.获取 ...

  5. 转 Android学习 之 ColorStateList按钮文字变色

    Windows平台VC,对于不同的按钮状态,采用不同的颜色显示文字,实现起来比较复杂,一般都得自绘按钮.但是Android里面实现起来非常方便. 我们首先添加一个ColorStateList资源XML ...

  6. CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下 文章写的不错,很详细:IDO转载自网络: 准备篇: 1.配置防火墙,开启 ...

  7. [Derby]数据库操作说明

    1. 创建新数据库 connect 'jdbc:derby:mydb;create=true'; ij> connect 'jdbc:derby:mydb;create=true'; ij> ...

  8. JavaScript字符串函数大全

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  9. 比较全面的MySQL优化参考(上下篇)

    转自:http://imysql.com/2015/05/24/mysql-optimization-reference-1.shtml 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨 ...

  10. [转][原]openstack-kilo--issue(六)kilo版openstack的dashboard在session超时后重新登录报错解决办法

    http://blog.csdn.net/wylfengyujiancheng/article/details/50523373?locationNum=1&fps=1 1.现象描述: kil ...