C和C++

C主要是应用在在驱动层,是面向过程的编程语言,对类型的定义不是很严格。C++主要是应用与应用层,是C语言的一个加强版,可以完全兼容C语言,并且还有很多C语言不具备的特性,如,C++是一种面向对象的编程语言,C++的设计目标是:运行效率和开发效率的统一

  • C++更加强调语言的实用性,可以在任意地方声明变量
  • C++中的register只是起到兼容性的作用
  • C++中的编译器能够更好的进行优化

struct关键字的加强:

C

typedef struct _tag_student Student;

struct _tag_student

{

const char* name;

int age;

}

C++

struct Student

{

const char* name;

int age;

};

int f() 和int f(void)有什么区别

注意:C++中的所有的表示符都必须显示的声明类型,不允许默认类型的出现,但是在C语言中可以

C++中:

  • int f()和int f(void)表示的是相同的意思,指的是定义了一个返回值是int的无参数的函数

C中: (在C中默认的参数类型和函数返回值类型都是int)

  • int f() 指的是定义了一个返回值为int 函数参数个数为任意多个的函数
  • int f(void) 指的是定义了一个返回值为int类型的无参数的函数

C和C++中的const的分析:

C

  • 修饰的变量是只读,本质还是变量
  • 修饰的局部变量在栈上分配空间
  • 修饰的全局变量在只读存储区分配空间
  • 只在编译期有用,其他时间没用
  • 注意:const修饰的变量不是真的常量,他只是告诉编译器该变量不能出现在赋值符号的左边

C++

  • 当碰到const标识符时,在符号表中放入常量
  • 编译过程中若发现使用常量,则直接以符号表中的常量进行替换
  • 编译过程中若发现下述情况,则给对应常量分配内存空间
    • 对const常量使用了extern
    • 对const常量使用了&操作符
  • C++编译器虽然可能给const常量分配空间但是不会使用其存储空间中的值

小结:

  • 与C语言不同,C++中的const不是只读变量
  • C++中的const是一个真正意义上的常量
  • C++编译器可能会为const常量分配空间
  • C++完全兼容C语言中const常量的语法特性

随机推荐

  1. webpack学习(四)extract-text-webpack-plugin插件

    二.extract-text-webpack-plugin插件 从 bundle 中提取文本(CSS)到单独的文件 安装 npm install extract-text-webpack-plugin ...

  2. mongdb时间类型

    Date() 显示当前的时间new Date 构建一个格林尼治时间   可以看到正好和Date()相差8小时,我们是+8时区,也就是时差相差8,所以+8小时就是系统当前时间ISODate() 也是格林 ...

  3. hdu-3388 Coprime---容斥定理&&DFS版

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3388 题目大意: 求同时与m,n互质的第k个数是多少! 解题思路: 和HDU-4135类似,将m和n ...

  4. ListView实现分页加载(二)实现底布局

    上一篇中,我们搭建好了一个Demo.没有阅读的可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4866929.html 在这一篇中,我们将实现Lis ...

  5. django 外键操作

    下面定义两个模型,一个主表,一个字表. 举例说明: 如何通过主表对象找到对应的子表对象? 如何通过子表对象找到对应的主表对象? class Person(models.Model); name = m ...

  6. C++ 全局变量不明确与 using namespace std 冲突

    写了个汉诺塔,使用全局变量count来记录步数,结果Error:count不明确 #include <iostream> using namespace std; ; void hanoi ...

  7. JS中的prototype (转载)

    JS中的prototype   JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是 ...

  8. 使用QT开发GoogleMap瓦片显示和下载工具

    之前做项目的时候经常遇到需要大量地图背景数据,然后没有数据被逼着去Google上下载瓦片数据在拼接成整张影像的工作,其实遥感影像晚上有很多可以下载到的,但是大部分是作为研究用的,作为GIS的背景图或者 ...

  9. peripheralStateNotificationCB

    /********************************************************************* * @fn peripheralStateNotifica ...

  10. Java语言实现简单的登陆注册

    1.登录注册 1.1数据库设计 create table USER_INFO( id number not null, name ) not null, pass ) )insert into USE ...