C++ c++与C语言的区别第一讲

//区别①:实用性增强
#include<iostream>
using namespace std;
//C语言中的变量都必须在作用域开始的位置定义!!
//C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。

void main(){
    int a = 1;
    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 = 0;
    for (i = 0; i < 3; 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 = 0;
    for (i = 0; i < 3; 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 = 1;

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=1;

void main(){

    system("pause");
}
时间: 2024-10-25 08:45:18

C++ c++与C语言的区别第一讲的相关文章

C++ c++与C语言的区别第二讲

//区别④:struct类型的加强(C++版本) #include<iostream> using namespace std; //C++中的struct是一个新类型的定义声明 //c++中结构体的默认访问权限public,和类不同 struct Teacher{ //char name[20]="小米";//报错 error C2536: “Teacher::Teacher::name”: 无法指定数组的显式初始值设定项 //错误原因:上面这种初始化,同时完成了内存空间

C语言教程:第一讲-计算机语言概述

一提到“语言”这个词,很多人会想到“英语”.“汉语”.“法语”.“韩语”.“日语”等语言,这些语言都是为了能让人与人之间交流而诞生的. 人与计算机之间和人与人之间也一样,如果我们想让计算机按我们的想法进行工作,我们也需要和计算机进行交流,而能让人类与计算机进行交流的语言,便是“计算机语言”了. 计算机语言分为三大类:机器语言.汇编语言和高级语言. (1)机器语言:机器语言也叫“二进制代码语言”,是机器指令的集合.机器指令是由“0”和“1”组成的二进制数所组成的指令.直接用机器语言编写出的程序的特

解释性语言和编译性语言的区别

解释性语言和编译性语言的区别 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 编译性语言 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高. 解释性语言 解释则不同

C语言基础课程 第一课 Linux环境配置小实战httpserver

?? C语言基础课程 第一课 Linux环境配置小实战httpserver 首先环境需要的是redhat虚拟机操作系统 打开redhat 防火墙 2.将WWW(HTTP)勾选上 3.点击apply 点击是 4.切换到root用户 输入正确的root密码 5. 启动http服务 6.输入ifconfig 查看当前ip 痛 7.通过分析我们知道 他是一个局域网的ip   windows可以通过net 或者 主机模式与Linux进行通信 如果不想改变本地ip地址的话  我们需要改变虚拟机的ip地址 和

Java与C语言的区别

Java与c都属于计算机的高级编程语言,都是为了方便人去编写出来东西控制计算机; 不同的是,Java是一种面向对象的语言,c是一门面向过程的语言,打个比方来说,你要给你朋友寄快递,Java的做法是找家快递公司,把快递交给快递公司,告诉快递公司需要送到你朋友所在地中你朋友手里,然后快递公司接到快递之后,会帮我们把快递送到目的地的你朋友的手中,这样我们就完成了我们的操作,这里面的快递公司就相当于一个对象;而对于面向过程的编程语言来说,由于没有对象的概念,所以他需要自己想办法走到你朋友所在的地方,找到

Java与c语言的区别!

Java与c语言的区别!Java与c都属于计算机的高级编程语言,都是为了方便人去编写出来东西控制计算机的.不同的是,Java是一种面向对象的语言,c是一门面向过程的语言.打个比方来说,你要给你朋友寄快递,Java的做法是找家快递公司,把快递交给快递公司,告诉快递公司需要送到你朋友所在地中你朋友手里,然后快递公司接到快递之后,会帮我们把快递送到目的地的你朋友的手中,这样我们就完成了我们的操作,这里面的快递公司就相当于一个对象;而对于面向过程的编程语言来说,由于没有对象的概念,所以他需要自己想办法走

《上古天真论》第一讲文字版

上古天真论篇第一讲主讲:徐文兵  主持:梁  冬播出时间:2008-12-06  23:00—24:00  经文:昔在黄帝,生而神靈,弱而能言,幼而徇齐,长而敦敏,成而等天.乃问于天师曰:余闻上古之人,春秋皆度百岁,而动作不衰:今时之人,年半百而动作皆衰者,时世异耶?人将失之耶?岐伯对曰:上古之人,其知道者,法于阴阳,和于术数, 梁冬:我是梁冬.梁某人.而做在我对面的是我的在求学中医方面的偶像级的老师徐文兵老师,徐老师你好!徐文兵:梁冬好!听众朋友们大家好!梁冬:啊呀,一看就很有这个电台风范,从

多么痛的领悟——计算机组成原理第一讲

多么痛的领悟——计算机组成原理第一讲 前言 大家好,我是泰斗贤若如,我又开始更新文章了,本次更新的内容是计算机组成原理,是大学计算机相关专业必须学的,我是大三上学期学的,刚开始学的时候感觉很难,get不到重点,直到学了一遍,被期末考试逼了一遍,我才有所领悟,多么痛的领悟啊.我打算自己把整本书中的重点总结一遍,第一是自己过一遍,第二是给新手赠予玫瑰,希望你们学的时候花最少的时间学更多的知识,别再在考试前病急乱投医了(偷笑表情) 一.计算机系统 1.计算机的硬件 计算机系统由“硬件”和“软件”两大部

(转)【风宇冲】Unity3D教程宝典之AssetBundles:第一讲

自:http://blog.sina.com.cn/s/blog_471132920101gz8z.html 原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 AssetBundles第一讲:基本使用 AssetBundles是从unity导出你选择的assets,它使用特有的压缩格式并且应用可以实时去读取它.包括模型贴图音频等任何asset类型,甚至整个场景.压缩大小基本能达到zip的效果.AssetBundles从设计时就定位为可以很简单就下载到应用里.如果你想包括自定义的bina