C语言基础入门有哪些关键步骤和难点?

2026-04-12 01:431阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1065个文字,预计阅读时间需要5分钟。

C语言基础入门有哪些关键步骤和难点?

目录 + 1. 命名空间 a. 命名空间定义 + (1) 命名空间限定符 + (2) 命名作用域限定符

2.C++的输入输出

1. 命名空间 C语言存在命名冲突的问题,库之间的冲突,以及我们相互之间的冲突。编辑 + a. 命名空间定义

目录

1.命名空间

a.命名空间定义

(1)、 域作用限定符

(2)、域访问顺序

2.C++的输入&&输出


1.命名空间

1.C语言存在命名冲突的问题,库之间的冲突

2.我们互相之间的冲突

编辑

a.命名空间定义

//域 namespace YanYingjie { int rand = 0; }

(1)、 域作用限定符

::域作用限定符,修改了其访问顺序,使得其不访问局部域,直接访问全局域

int a = 0; int main() { int a = 1; printf("%d\n",a); printf("%d",::a); return 0; }

(2)、域访问顺序

访问顺序:局部域->全局域->命名空间域

访问命名空间域的前提:

①、展开命名空间域

展开命名空间域之后,命名空间域相当于暴露在全局,此时,命名空间域

变成了全局变量,如果同时访问命名空间域和全局变量则直接报错,展开意味着,是否去命名空间

内部进行搜索

using namespace yqy;

②、指定访问命名空间域

int a = 0; namespace yqy { int a = 2; } int main() { //int a = 1; printf("%d\n",a); printf("%d",yqy::a); return 0; }

namespace之间可以互相嵌套

namespace N1 { int a = 0; int b; int c; int Add(int left,int right) { return left + right; } namespace N2 { int a = 1; int b; int c; int Add(int left, int right) { return left + right; } } } int main() { int left = 1; int right = 2; printf("%d",N1::Add(left,right)); return 0; }

问题:

为什么头文件没有.h

//头文件,又称io流 #include<iostream> //为什么不加.h //早些年时候,确实存在.h,很老的编译器确实可以使用vc6.0 没有命名空间 //强制<iostream.h>使用则会报错

std是C++标准库,using namespace std;意味着,编译过程中,可以直接去std库中进行

访问,但是直接展开并不好,如果我们的定义,如果与库中的内容冲突,则会报错,最好用谁,

展开谁,项目里面尽量不要展开

解决方法:我们可以把常用的函数展开,using std::cout; using std::endl;

using namespace std; int main() { std::cout << "hello world" << std::endl; cout << "hello world" << endl; return 0; }

2.C++的输入&&输出

注:std::cout和std::endl,厉害的地方在于自动识别数据类型

说明:

1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件

以及按命名空间使用方法使用std。

2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含<

iostream >头文件中。

3. <<是流插入运算符,>>是流提取运算符。

C语言基础入门有哪些关键步骤和难点?

4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。

C++的输入输出可以自动识别变量类型。

5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,

这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有

一个章节更深入的学习IO流用法及原理

C++和C语言可以混着用,哪个方法方便使用哪个



本文共计1065个文字,预计阅读时间需要5分钟。

C语言基础入门有哪些关键步骤和难点?

目录 + 1. 命名空间 a. 命名空间定义 + (1) 命名空间限定符 + (2) 命名作用域限定符

2.C++的输入输出

1. 命名空间 C语言存在命名冲突的问题,库之间的冲突,以及我们相互之间的冲突。编辑 + a. 命名空间定义

目录

1.命名空间

a.命名空间定义

(1)、 域作用限定符

(2)、域访问顺序

2.C++的输入&&输出


1.命名空间

1.C语言存在命名冲突的问题,库之间的冲突

2.我们互相之间的冲突

编辑

a.命名空间定义

//域 namespace YanYingjie { int rand = 0; }

(1)、 域作用限定符

::域作用限定符,修改了其访问顺序,使得其不访问局部域,直接访问全局域

int a = 0; int main() { int a = 1; printf("%d\n",a); printf("%d",::a); return 0; }

(2)、域访问顺序

访问顺序:局部域->全局域->命名空间域

访问命名空间域的前提:

①、展开命名空间域

展开命名空间域之后,命名空间域相当于暴露在全局,此时,命名空间域

变成了全局变量,如果同时访问命名空间域和全局变量则直接报错,展开意味着,是否去命名空间

内部进行搜索

using namespace yqy;

②、指定访问命名空间域

int a = 0; namespace yqy { int a = 2; } int main() { //int a = 1; printf("%d\n",a); printf("%d",yqy::a); return 0; }

namespace之间可以互相嵌套

namespace N1 { int a = 0; int b; int c; int Add(int left,int right) { return left + right; } namespace N2 { int a = 1; int b; int c; int Add(int left, int right) { return left + right; } } } int main() { int left = 1; int right = 2; printf("%d",N1::Add(left,right)); return 0; }

问题:

为什么头文件没有.h

//头文件,又称io流 #include<iostream> //为什么不加.h //早些年时候,确实存在.h,很老的编译器确实可以使用vc6.0 没有命名空间 //强制<iostream.h>使用则会报错

std是C++标准库,using namespace std;意味着,编译过程中,可以直接去std库中进行

访问,但是直接展开并不好,如果我们的定义,如果与库中的内容冲突,则会报错,最好用谁,

展开谁,项目里面尽量不要展开

解决方法:我们可以把常用的函数展开,using std::cout; using std::endl;

using namespace std; int main() { std::cout << "hello world" << std::endl; cout << "hello world" << endl; return 0; }

2.C++的输入&&输出

注:std::cout和std::endl,厉害的地方在于自动识别数据类型

说明:

1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件

以及按命名空间使用方法使用std。

2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含<

iostream >头文件中。

3. <<是流插入运算符,>>是流提取运算符。

C语言基础入门有哪些关键步骤和难点?

4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。

C++的输入输出可以自动识别变量类型。

5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,

这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有

一个章节更深入的学习IO流用法及原理

C++和C语言可以混着用,哪个方法方便使用哪个