C++的特点
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常量的语法特性
随机推荐
- SAP CRM settype的创建,背后发生了什么
来自我的同事Sara. 当我们在CRM系统里创建一个settype之后,其实系统后台悄悄的帮我们创建了很多ABAP对象,比如对应的database tables, other ABAP Diction ...
- 针对ArcGIS Server 跨域问题的解释
在博客Hello World文章中提起过,以前在sinaapp中建立过wordpress博客,也写过一篇关于ArcGIS JavaScript API的文章,但是由于sinaapp开始收费以后,我的个 ...
- django 外键操作
下面定义两个模型,一个主表,一个字表. 举例说明: 如何通过主表对象找到对应的子表对象? 如何通过子表对象找到对应的主表对象? class Person(models.Model); name = m ...
- Spring(二十)之使用Log4j记录日志
日志记录,也是常用的,比如异常信息记录或者其他相关信息记录,良好的日志记录有助于当系统出现某些不是特别大的问题时,可及时通过日志信息,捕捉到异常,从而确定是那段代码的问题,避免影响其他的代码. 关于m ...
- spring使用Redis自定义前缀后缀名(去掉SimpleKey []+自定义)
spring中自动加上 SimpleKey [] 解决方案 一.自定义后缀名 1.定义类实现KeyGenerator接口 MyKeyGenerator package com.wbg.springRe ...
- Java 分支结构
Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构. Java 有两种分支结构: if 语句 switch 语句 if 语句 一个 i ...
- JAVA并发-线程状态
一.线程基本状态 新建:线程已创建但start()方法还没执行 就绪(可运行):start()方法已运行,但还没被选择 运行:从就绪线程中选择出某一个线程进行run()操作 阻塞(不可运行):线程正在 ...
- Knowledge Point 20180309 字符串常量池与String,intern()
引言 什么都先不说,先看下面这个引入的例子: public static void test4(){ String str1 = new String("SEU") + new S ...
- 【转载】决策树Decision Tree学习
本文转自:http://www.cnblogs.com/v-July-v/archive/2012/05/17/2539023.html 最近在研究规则引擎,需要学习决策树.决策表等算法.发现篇好文对 ...
- plsql中特殊字符的处理
--去除换行chr(10) update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,ch ...