本文主要是整理一些C++与C的一些小的区别,也就是在使用C与C++时候需要注意的一些问题,C++是以C语言为基础的,并且完全兼容C语言的特性

注释

C语言的注释形式为

/*
注释内容
*/

而C++提供了另一种新的注释方式

//注释内容

但在C的发展过程中,慢慢接受了C++的注释方式,在C语言中也可以采用C++的注释方式了

变量的声明及初始化

在C语言中,局部变量的声明和初始化是分开的

int i;
for(i = 0; i < 10; i++);

而在C++中,声明和初始化可以放在一块儿

for(int i = 0; i < 10; i++);

这种规则,在C后来的编译器中也被允许了,但在C89及以前的C标准编译器是会报错的

函数原型的增强

在C语言中,对于函数原型的简化是很随意的,而C++做了强制的函数类型和返回参数说明

例如

int func(char, double);

以上函数声明在C语言中写作func();是合法的,这就造成了理解上的困难

增加了函数重载机制

这在C语言里面是没有的

C++可以通过重载,增加新的定义

增加缺省参数

C++允许函数有缺省参数

int func(int a, int b = 1)
{
return a*b;
}

此时,调用函数func(3,1)func(3),其得到的结果是相同的

动态存储的改变

C++提供了动态内存分配和释放的操作符newdelete,用来增强C语言中的malloc()free()

增加了内联函数

C++的内内联函数用以代替C语言中的宏,实现了函数调用的参数检查

输入/输出流机制

C++保留了C语言标准库中的各种输入输出函数,增加了新的输入输出机制-流机制

cout << "test";
int a;
cin >> a;

这种输入输出运算符可以根据变量类型自动确定数据交换过程中的转换方式

作用域限定运算符::

作用域限定运算符::用于对当前作用域之外的同名变量进行访问。

#include <iostream>

int a;
void main()
{
float a;
a = 3.14;
::a = 6;
cout << "local variable a = "<< a << endl;
cout << "global variable a = " << ::a << endl;
}

增强结构体

在C++中,结构体可以带有函数

而在C语言中,这样做是不允许的

声明结构体变量,在C语言里面是这样的

struct man m1;

而在C++中可以省略struct

man m1;

C++学习笔记-C++与C语言的一些区别的更多相关文章

  1. golang学习笔记18 用go语言编写移动端sdk和app开发gomobile

    golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...

  2. cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)

    在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...

  3. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  4. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  5. sqlite学习笔记7:C语言中使用sqlite之打开数据库

    数据库的基本内容前面都已经说得差点儿相同了.接下看看如何在C语言中使用sqlite. 一 接口 sqlite3_open(const char *filename, sqlite3 **ppDb) 打 ...

  6. 【学习笔记】【C语言】关系运算符

    1. 条件判断 默认情况下,我们在程序中写的每一句正确代码都会被执行.但很多时候,我们想在某个条件成立的情况下才执行某一段代码 这种情况的话可以使用条件语句来完成,但是我们暂时不学习条件语句,先来看一 ...

  7. go 学习笔记之初识 go 语言

    Go 是一种开源编程语言,可以轻松构建简单,可靠,高效的软件. 摘录自 github: https://github.com/golang/go,其中官网(国外): https://golang.or ...

  8. C++学习笔记-C++对C语言的扩充和增强

    C++兼容C,在C的基础上学习C++是一个不错的选择,也能够更好的了解C与C++的区别与联系. 变量定义 C语言中的变量都必须在作用域开始的位置定义 C++中更强调语言的实用性,所有的变量都可以在需要 ...

  9. 【C语言学习笔记系列】C语言编程狼追兔子问题代码解析!

    问题描述 一只兔子躲进了10个环形分布的洞中的一个.狼在第一个洞中没有找到兔子,就隔一个洞,到第3个洞去找:也没有找到,就隔2个洞,到第6个洞去找:以后每次多一个洞去找兔子--这样下去,如果一直找不到 ...

随机推荐

  1. logback.xml 配置详解(转)

    <?xml version="1.0" encoding="UTF-8"> <configuration> <!-- 设置控制台日 ...

  2. gtid 1032同步异常处理

    gtid  1032同步异常处理 .sql # 在从库中执行 ; ,); ,); ,); ,); ; mysql> select * from fudao_student_lable; +--- ...

  3. Python数学常量

    常量 描述 pi 数学常量 pi(圆周率,一般以π来表示) e 数学常量 e,e即自然常数(自然常数).

  4. 通过JS完成电梯动画效果

    实习单位要求做一个在Vue项目中比较能适配的来反映货梯当前状况的页面效果 用JS写了一个 <!DOCTYPE html> <html> <head> <met ...

  5. httpclient个人理解

    httpclient:模拟浏览器发送请求,服务器会响应数据,用心区域网内 不同系统间的请求调用 依赖  httpclient.jar和httpcore.jar需要同时纯在 <dependency ...

  6. codevs 1464 装箱问题 2 x

                         题目描述 Description 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3 ...

  7. HDU6140--Hybrid Crystals(思维)

    Hybrid Crystals Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  8. Suitable Replacement

    D. Suitable Replacement 这个题统计出 s 和 t 中的各字母个数以及"?"的个数,直接暴力即可,s中不足的字母可用 "?"来替代 这个题 ...

  9. docker Tomcat镜像

    docker中的管理命令 首先需要去下载镜像. [root@CFCA ~]# docker pull tomcat    下载镜像[root@CFCA ~]# docker images       ...

  10. 关于数据上传阿里云MaxCompute调研

    1.背景 当前的数据存储基于mysql库表存储形式,目前已经无法满足愈加增大的数据存储需求,新项目基于Maxcompute数据仓库架构,需要将统计日志上传Maxcompute,本文对Maxcomput ...