C++和C的区别

C++与C语言的关系:
1、C++继承了所有的C特性
2、C++在C的基础上提供了更多更好的语法和特性
3、C++的设计目标是运行效率和开发效率的统一


C++对C语言的加强:
1、C++中所有的变量都可以再需要使用时再定义(如 for循环等中需要的变量)
2、register:C语言用register告诉编译器将局部变量存储于寄存器之中;C++兼容register,但可以取地址,不使用register时也可能优化到寄存器
3、C中可以定义多个同名的全局变量;C++不可以
4、const;C++中对const的处理:当碰到const常量声明时,在符号表中放入常量;在编译过程中发现使用常量,直接用符号表中的值替换;在编译中发现对const使用了extern或者&则给对应的常量分配空间;   const与宏的区别:const由编译器处理,检查类型和作用域;宏由预处理器处理,只做文本替换。
5、struct:C中struct只是一组变量的集合,没有定义新的类型;C++中struct定义了一个新的类型。
6、C++中所有变量和函数都必须有显式的类型声明
7、int f();C中可接受任意参数的函数;C++中为不接受任何参数。int f(void);C中不接受任何参数;C++中不接受任何参数。
8、C++中的布尔类型bool;取值只能是true或者false;多个bool放在一起定义,可能各占一个bit
9、三目运算符的升级,返回值全为变量时返回的是引用,否则返回的是值


1->for循环等中需要的变量:例如:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int c = 0;
    printf("Begin...\n");
    for(int i=0; i<10; i++)
    {
        for(int j=0; j<10; j++)
        {
            c += i * j;
        }
    }
    printf("c = %d\n", c);
    printf("End...\n");
    printf("Press enter to continue ...");
    getchar();
    return 0;
}

2->register实例:

#include <stdio.h>
int main(int argc, char *argv[])
{
    register int c = 0;
    printf("Begin...\n");
    printf("&c = %08X\n", &c);
    printf("End...\n");
    printf("Press enter to continue ...");
    getchar();
    return 0;
}

3->C++不可以定义多个同名的全局变量:例如:

#include <stdio.h>
int g_var;
int g_var = 1;
int main(int argc, char *argv[])
{
    printf("Begin...\n");
    printf("g_var = %d\n", g_var);
    printf("End...\n");
    printf("Press enter to continue ...");
    getchar();
    return 0;
}

4->const实例:

#include <stdio.h>
int main(int argc, char *argv[])
{
    const int c = 0;
    int* p = (int*)&c;
    printf("Begin...\n");
    *p = 5;
    printf("c = %d\n", c);
    printf("End...\n");
    printf("Press enter to continue ...");
    getchar();
    return 0;
}

5->C++中struct定义了一个新的类型:例如:

#include <stdio.h>
struct Student
{
    const char* name;
    int age;
};
int main(int argc, char *argv[])
{
    Student s1 = {"Delphi", 30};
    Student s2 = {"Tang", 30};
    printf("Press enter to continue ...");
    getchar();
    return 0;
}

6->C++中所有变量和函数都必须有显式的类型声明:例如:

#include <stdio.h>
f(i)
{
    printf("i = %d\n", i);
}
g()
{
    return 5;
}
int main(int argc, char *argv[])
{
    printf("Begin...\n");
    f(10);
    printf("g() = %d\n", g(1,2,3,4,5));
    printf("End...\n");
    printf("Press enter to continue ...");
    getchar();
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值