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;
}