好看开源企业网站模板,电脑速成班短期电脑培训班,建设设计网站公司网站,重庆建设摩托车官方网站打字不易#xff0c;留个赞再走吧~~ 目录 一.第一个c程序二.命名空间 namespace三.C输⼊输出四.缺省参数 C兼容C语⾔绝⼤多数的语法#xff0c;所以C语⾔实现的hello world依旧可以运⾏#xff0c;C中需要把定义⽂件 代码后缀改为.cpp 一.第一个c程序 做好准备我们来写… 打字不易留个赞再走吧~~ 目录 一.第一个c程序二.命名空间 namespace三.C输⼊输出四.缺省参数 C兼容C语⾔绝⼤多数的语法所以C语⾔实现的hello world依旧可以运⾏C中需要把定义⽂件 代码后缀改为.cpp 一.第一个c程序 做好准备我们来写一个Hello world 也许你会看不懂下面 来讲解。
二.命名空间 namespace
命名空间的价值 在C/C中变量、函数和后⾯要学到的类都是⼤量存在的这些变量、函数和类的名称将都存在于全 局作⽤域中可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化以避免命名 冲突或名字污染namespace关键字的出现就是针对这种问题的 在以前写c的程序时我们会遇到这样的问题
#include stdio.h
#include stdio.h
#include stdlib.h
int rand 10;
int main()
{
// 编译报错error C2365: “rand”: 重定义以前的定义是“函数”
printf(%d\n, rand);
return 0;
}因为我们在标准库中有了rand()函数所以命名冲突不能使用rand变量来赋值。 我们 可以用namespace义一个命名空间里面可以写多个方法(函数)变量结构体这时候我们引用这些东西时候 要指名命名空间名然后再加上引用类型中间要用::隔开。如图我们在打印way库中的方法Add1()和Add2()时候都用::分开。因为cont输出函数endl(换行符)都是在命名空间std中它们都在中相当于c语言中的stdio.h所以我们在这里加上std::cout或者是std::endl。至于是什么意思以后再做讨论 我们也可以展开命名空间这样就不用反复调用命名空间直接调用其方法。 方法为using namespace 命名空间的名称 上面优化后代码为
三.C输⼊输出
在了解c输入输出格式之前我们要先了解这些 是 Input Output Stream 的缩写是标准的输⼊、输出流库定义了标准的输⼊、输 出对象。 • std::cin 是 istream 类的对象它主要⾯向窄字符narrow characters (of type char)的标准输 ⼊流。 • std::cout 是 ostream 类的对象它主要⾯向窄字符的标准输出流。 • std::endl 是⼀个函数流插⼊输出时相当于插⼊⼀个换⾏字符加刷新缓冲区。 • 是流插⼊运算符是流提取运算符。C语⾔还⽤这两个运算符做位运算左移/右移 • 使⽤C输⼊输出更⽅便不需要像printf/scanf输⼊输出时那样需要⼿动指定格式C的输⼊ 输出可以⾃动识别变量类型(本质是通过函数重载实现的这个以后会讲到)其实最重要的是 C的流能更好的⽀持⾃定义类型对象的输⼊输出。 • IO流涉及类和对象运算符重载、继承等很多⾯向对象的知识这些知识我们还没有讲解所以这 ⾥我们只能简单认识⼀下C IO流的⽤法后⾯我们会有专⻔的⼀个章节来细节IO流库。 • cout/cin/endl等都属于C标准库C标准库都放在⼀个叫std(standard)的命名空间中所以要 通过命名空间的使⽤⽅式去⽤他们。 • ⼀般⽇常练习中我们可以using namespace std实际项⽬开发中不建议using namespace std。 • 这⾥我们没有包含stdio.h也可以使⽤printf和scanf在包含间接包含了。vs系列 编译器是这样的其他编译器可能会报错。 int a;int b;char c;cin a;
cin b c;
cout a endl;
cout b c endl; 上面代码cin就相当于scanf函数和scanf函数不同的是他不需要指定占位符你定义什么面数据就可以输出什么数据。它会自动识别换行符空格来识别你的数据。 当然它也在std标准库里不要忘记 #includeiostream
using namespace std;四.缺省参数 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时如果没有指定实参 则采⽤该形参的缺省值否则使⽤指定的实参缺省参数分为全缺省和半缺省参数。有些地⽅把 缺省参数也叫默认参数 • 全缺省就是全部形参给缺省值半缺省就是部分形参给缺省值。C规定半缺省参数必须从右往左 依次连续缺省不能间隔跳跃给缺省值。 • 带缺省参数的函数调⽤C规定必须从左到右依次给实参不能跳跃给实参。 • 函数声明和定义分离时缺省参数不能在函数声明和定义中同时出现规定必须函数声明给缺省 值。 举个列子 全缺省
#includeiostream
using namespace std;namespace Way {int Add1(int a 1, int b 2) {return a b;}
}
int main(){cout Way::Add1() endl;}这就是刚刚我们写的Add1,此时我们不传参在方法定义中赋值这就叫缺省参数。 结果为 半缺省我们赋值一个另一个用缺省注意只能从左边缺省不能从右边 还是刚刚列子稍微修改一下
namespace Way {int Add1(int a int b 2) {return a b;}
}
int main(){cout Way::Add1(3) endl;}这时候传参a为3加上缺省参数b为2期望结果为5. 这次博客我们写了第一个c程序了解了命名空间 namespace C输⼊输出。最后知道了缺省参数这样看来c确实更加便捷以后内容更精彩 。