C++继承了C的所有特性。C++在C的基础上提供了更多的语法和特性。C++的设计目标是运行效率和开发效率的统一。
int a = 0;
for (int i = 1; i < 3; i++)//这里的i是在循环中定义的,是C++的语法
{
a++;
}
在C语言中,重复定义多个同名的全局变量是合法的。
在C++中,则不允许定义多个同名的全局变量,C++直接拒绝这种二义性的做法。
#include "iostream"
int g_v;
//int g_v=1; // 重复定义全局变量在C++中会编译错误
register int a = 0;
printf("&a = %p\n", &a); // register关键字失效
//C中的结构体
typedef struct _tag_student Student;
struct _tag_student
{
const char * name;
int age;
};
等价于
//C++中的结构体
struct Student
{
const char *name;
int age;
};
const是一个C语言的关键字,具有着举足轻重的地位。 它限定一个变量不允许被改变,产生静态作用。 使用const在一定程度上可以提高程序的安全性和可靠性。
#include "iostream"
int main(int argc, char *argv[])
{
const int c = 0; /* const常量 */
int* p = (int*)&c; /* 对常量c分配了存储空间 */
printf("Begin...\n");
*p = 5; /* C++不允许const常量被修改 */
printf("c = %d\n", c);
printf("End...\n");
printf("Press enter to continue ...");
getchar();
return 0;
}
在C语言中,const变量是只读变量,有自己的存储空间。而在C++中,可能分配存储空间。(当const常量为全局,并且需要在其它文件中使用。当使用&操作符取const常量的地址)
在C++中如果不定义函数的参数类型,就不能再后面的应用当中加入参数
#include
f(i) /* 没有指明函数返回类型 */
{
printf("i = %d\n", i);
}
g() /* 没有指明函数返回类型,并且调用g()函数的时候不能进行传参 */
{
return 5;
}
int main(int argc, char *argv[])
{
printf("Begin...\n");
f(10);
printf("g() = %d\n", g());
printf("End...\n");
printf("Press enter to continue ...");
getchar();
return 0;
}
C++在C语言的基本类型系统上增加了bool类型,bool可取的值只有true和false,并且只占用一个字符。
true代表真值,编译器内部用1来表示。false代表非真值,编译器内部用0来表示。
#include "iostream"
int main()
{
int a;
bool b = true;
printf("b = %d, sizeof(b) = %d\n", b, sizeof(b));
b = 3;
a = b;
printf("a = %d, b = %d\n", a, b);
printf("Press enter to continue ...");
getchar();
return 0;
}
(a < b ? a : b) = 1;