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 }

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

 

posted @ 2016-07-12 09:44  新生代黑马  阅读(856)  评论(0编辑  收藏  举报