Linux C/C++ 区别:类型声明、struct

C有数组、结构体、指针、函数、宏

C++有命名空间、引用、默认参数、模板、函数重载、自定义操作符、内联、构造/析构、私有/保护成员、友元、异常。

一、数据类型的声明

  1. 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 }
  1. 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

  1. 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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午5:11
下一篇 2023年2月13日 下午5:11

相关推荐