什么网站框架,网站的前端和后端,磁县信息港,seo软件推广#x1f40c;博主主页#xff1a;#x1f40c;倔强的大蜗牛#x1f40c; #x1f4da;专栏分类#xff1a;C❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ 目录
一、C和C语言的区别和联系
二、命名空间
1、命名空间定义
2、命名空间使用 三、C输… 博主主页倔强的大蜗牛 专栏分类C❤️感谢大家点赞收藏⭐评论✍️ 目录
一、C和C语言的区别和联系
二、命名空间
1、命名空间定义
2、命名空间使用 三、C输入输出
四、缺省参数
1、缺省参数概念
2、缺省参数分类 一、C和C语言的区别和联系 C语言诞生于1972年是面向过程的语言 到1980年时面对日益复杂的问题C语言不够用了 于是在C语言基础上增加了许多新功能/特性称这个新版为C 其中最重要最本质的是 面向对象 C是C的一个超集 任何合法的C程序都是合法的C程序 C语言是面向过程的通过编写函数解决问题C是支持面向过程 面向对象的通过编写函数和类来解决问题 二、命名空间
在C/C中变量、函数和后面要学到的类都是大量存在的这些变量、函数和类的名称将都存 在于全局作用域中可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化 以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。 #include stdio.h
#include stdlib.h
int rand 10;
// C语言没办法解决类似这样的命名冲突问题所以C提出了namespace来解决
int main()
{printf(%d\n, rand);
return 0;
}
// 编译后后报错error C2365: “rand”: 重定义以前的定义是“函数” 1、命名空间定义 定义命名空间需要使用到namespace关键字后面跟命名空间的名字然后接一对{}即可{} 中即为命名空间的成员。 // 1. 正常的命名空间定义
namespace dawoniu
{// 命名空间中可以定义变量/函数/类型int rand 10;int Add(int left, int right){return left right;}
struct Node{struct Node* next;int val;};
}
//2. 命名空间可以嵌套
// test.cpp
namespace N1
{
int a;
int b;
int Add(int left, int right){return left right;}
namespace N2{int c;int d;int Sub(int left, int right){return left - right;}}
}//3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
// ps一个工程中的test.h和上面test.cpp中两个N1会被合并成一个
// test.h
namespace N1
{
int Mul(int left, int right){return left * right;}
} 注意一个命名空间就定义了一个新的作用域命名空间中的所有内容都局限于该命名空间中 2、命名空间使用 命名空间的使用有三种方式 加命名空间名称及作用域限定符
int main()
{printf(%d\n, N::a);return 0;
}
使用using将命名空间中某个成员引入 using N::b;
int main()
{printf(%d\n, N::a);printf(%d\n, b);return 0;
} 使用using namespace 命名空间名称 引入 using namespce N;
int main()
{printf(%d\n, N::a);printf(%d\n, b);Add(10, 20);return 0;
} 三、C输入输出
#includeiostream
// std是C标准库的命名空间名C将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
coutHello world!!!endl;
return 0;
} 说明 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时必须包含 iostream 头文件 以及按命名空间使用方法使用std。 cout和cin是全局的流对象endl是特殊的C符号表示换行输出他们都包含在包含 iostream 头文件中。 是流插入运算符是流提取运算符。 使用C输入输出更方便不需要像printf/scanf输入输出时那样需要手动控制格式。 C的输入输出可以自动识别变量类型。 注意早期标准库将所有功能在全局域中实现声明在.h后缀的头文件中使用时只需包含对应头文件即可后来将其实现在std命名空间下为了和C头文件区分也为了正确使用命名空间规定C头文件不带.h旧编译器(vc 6.0)中还支持iostream.h格式后续编译器已不支持因此推荐使用iostreamstd的方式。 四、缺省参数
1、缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时如果没有指定实 参则采用该形参的缺省值否则使用指定的实参。 void Func(int a 0)
{coutaendl;
}
int main()
{Func(); // 没有传参时使用参数的默认值Func(10); // 传参时使用指定的实参
return 0;
}
2、缺省参数分类
全缺省参数 void Func(int a 10, int b 20, int c 30){couta aendl;coutb bendl;coutc cendl;} 半缺省参数 void Func(int a, int b 10, int c 20){couta aendl;coutb bendl;coutc cendl;} 注意 半缺省参数必须从右往左依次来给出不能间隔着给 缺省参数不能在函数声明和定义中同时出现 缺省值必须是常量或者全局变量 C语言不支持编译器不支持 本次分享的内容到这里就结束啦希望大家阅读完可以有所收获。 如果文章有问题可以在评论区留言蜗牛会认真修改的哦 点赞关注收藏