C有数组、结构体、指针、函数、宏
C++有命名空间、引用、默认参数、模板、函数重载、自定义操作符、内联、构造/析构、私有/保护成员、友元、异常。
一、数据类型的声明
- C++允许数据声明出现在程序的任意位置
C代码(异常)
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 int main(int argc, char* argv[])
5 {
6 for(int i=0; i<5; i++)
7 printf("hello %d\n", i);
8
9 return 0;
10 }
C++代码(正常)
1 #include <iostream>
2 #include <cstdio>
3 using namespace std;
4
5 int main(int argc, char* argv[])
6 {
7 for(int i=0; i<5; i++)
8 printf("hello %d\n", i);
9
10 return 0;
11 }
- c++允许使用结构体名定义实体
C代码(异常)
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4
5 //C语言中不能直接使用结构体名定义实体
6 struct Person
7 {
8 char name[20];
9 int age;
10 };
11
12 int main(int argc, char* argv[])
13 {
14 //struct Person person;
15 Person person;
16
17 strcpy(person.name, "Tom");
18 person.age = 5;
19
20 printf("%s age is %d\n", person.name, person.age);
21
22 return 0;
23 }
C++代码(正常)
1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 using namespace std;
5
6 //C++中可以直接使用结构体名定义实体
7 struct Person
8 {
9 char name[20];
10 int age;
11 };
12
13 int main(int argc, char* argv[])
14 {
15 //
16 Person person;
17
18 strcpy(person.name, "Tom");
19 person.age = 5;
20
21 printf("%s age is %d\n", person.name, person.age);
22
23 return 0;
24 }
二、struct
- C++允许对struct内数据成员进行操作的函数,作为struct成员声明。
C代码(异常)
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4
5 //C中不允许对struct内数据成员进行操作的函数,作为struct成员声明
6 struct Person
7 {
8 char name[20];
9 int age;
10
11 //
12 void output() { printf("%s age is %d\n", name, age); }
13 };
14
15 int main(int argc, char* argv[])
16 {
17 struct Person person;
18
19 strcpy(person.name, "Tom");
20 person.age = 5;
21
22 person.output();
23
24 return 0;
25 }
C++代码(正常)
1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 using namespace std;
5
6 //C++中允许对struct内数据成员进行操作的函数,作为struct成员声明
7 struct Person
8 {
9 char name[20];
10 int age;
11
12 //
13 void output() { printf("%s age is %d\n", name, age); }
14 };
15
16 int main(int argc, char* argv[])
17 {
18 //
19 Person person;
20
21 strcpy(person.name, "Tom");
22 person.age = 5;
23
24 person.output();
25
26 return 0;
27 }
原文链接: https://www.cnblogs.com/maxin/p/5662449.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/236833
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!