如何在手机上建立自己的网站网络工程师中级
- 作者: 五速梦信息网
- 时间: 2026年03月21日 09:49
当前位置: 首页 > news >正文
如何在手机上建立自己的网站,网络工程师中级,网站设计的基本原则,出售app软件的平台目录 一.C的第一个程序 二.命名空间#xff08;namespace#xff09; 1.命名空间的定义与使用#xff1a; #xff08;1#xff09;命名空间里可以定义变量#xff0c;函数#xff0c;结构体等多种类型 #xff08;2#xff09;命名空间调用#xff08;#xf…目录 一.C的第一个程序 二.命名空间namespace 1.命名空间的定义与使用 1命名空间里可以定义变量函数结构体等多种类型 2命名空间调用与展开 3命名空间的嵌套 4具体使用场景 三.缺省参数 1.基本定义 2.几个注意 四.函数重载 1.定义与使用 五.引用 1.定义 2.引用的特性 3.引用的使用区别传值返回和传引用返回 4.const引用 六.inline内联 一.C的第一个程序 C作为C语言的升级版除了可以无缝兼容C语言的各种语法结构和各种框架外在很大程度上对C语言的许多代码进行了优化升级在保持原有代码逻辑结构相同的情况下C的简便性和应用性相比C语言不可同日而语以下我要阐述的就是在学完C语言然后进入C后需要掌握的一些基础知识首先来看第一个C程序 #includeiostream//C需要包含的头文件 using namespace std;//展开对应的命名空间 int main() {cout hello world endl;//区别于C语言的输出方式 //cout输出内容后面的endl是换行endline但和C语言里面的\n不用endl是一个函数。return 0; } 基础结构大概就是这样下面就是对每一部分的具体介绍 二.命名空间namespace 1.命名空间的定义与使用 书面上的定义简而言之是namespace的本质是定义出一个域这个域跟全局域各自独立不同的域可以定义同名变量 1命名空间里可以定义变量函数结构体等多种类型 #includeiostream namespace space { //定义变量int rand 10;char time 20; //定义函数int add(int a, int b){return a b;} //定义结构体struct student{char name[20];char sex[6];int age;}; } int main() {return 0; } 2命名空间调用与展开 在调用的时候只要用空间名函数名这样的格式来调用 #includeiostream int main() {std::cout hello world std::endl;return 0; } 也可以只展开一个命名空间中的某个变量或函数这样的话访问这个变量或函数就更简便 #includeiostream using namespace std; namespace b {int test(int x, int y){return x y;} } using b::test; int main() {int m test(1, 5);cout m;return 0; } 3命名空间的嵌套 #includeiostream using namespace std; namespace a {int test(int x, int y){return x y;}namespace b{int test(int x, int y){return x * y;}}} int main() {int m a::test(2, 3);int n a::b::test(2, 3);cout m n;return 0; } 4具体使用场景 #include stdio.h #include stdlib.h int rand 10; int main() {// 编译报错error C2365: “rand”: 重定义以前的定义是“函数” printf(%d\n, rand);return 0; } 这样写c语言会报错报错的原因就是我们自己定的变量rand和C语言自带的库函数冲突了这时候编译器就无法识别这其实是C语言的不足之处。而c中的命名空间就完美的解决这个问题 三.缺省参数 1.基本定义 在函数定义时为参数指定的默认值当调用函数时如果没有传递该参数则使用默认值。这样可以提高函数的灵活性和可重用性 举例例如一个计算面积的函数参数有长和宽其中宽可以设为默认值1这样调用时只传长就可以得到正方形的面积这样的例子比较直观 #includeiostream using namespace std; int test(int x 2, int y 6) {return x y; } //如果调用这个函数但是不传递参数那么返回结果就是8同样如果掺入参数1和2那么返回结果就是3 2.几个注意 1缺省参数必须从右往左给比如上面的程序我们只给x缺省参数但不给y缺省参数这样其实是不合法的 2函数实参一定是从左往右给函数的 3函数声明和定义分离时不能在声明和定义中同时给缺省值 #includeiostream using namespace std;int test(int x 1, int y 2); int main() {int a test();cout a;return 0; } int test(int x 1, int y 2) {return x y; } //比如这样同时个给缺省值的函数是不合法的一般只在声明中给缺省值 四.函数重载 1.定义与使用 即重名函数可以通过识别传入的参数类型来自动选择相对应的函数例如 #includeiostream using namespace std;int test(int x , int y ) {return x y; } double test(double x, double y) {return x y; } int main() {double x 1.5, y 2.8;int a test(1,2);double b test(x, y);cout a b ;return 0; } 五.引用 1.定义 引用不是新定义一个变量而是给已存在变量取了一个别名编译器不会为引用变量开辟内存空间它和它引用的变量共用同一块内存空间但实际上在C的底层逻辑里引用依旧是以指针的形式存在但我们在实际使用中并不需要考虑那么多就当引用是C给我们带来的一种更加方便写代码的方法就行了以下是引用使用的基本规则 类型 引用别名引用对象 #includeiostream using namespace std; int main() {int a 30;//一个变量可以取多个别名int b a;//给a变量取别名int c a;//c也是a的别名int d b;//给b变量取别名相当于d也是a的别名cout a endl b endl c endl d endl;//从地址中也可以看出来a,b,cd占用同一块内存空间return 0;} 当然引用相对指针是非常方便好理解的我举个例子 #includeiostream using namespace std; //传址调用,指针 void swap(int* a, int* b) {int tmp *a;*a *b;*b tmp; } //引用 void swap(int a, int b)//函数重载 {int tmp a;a b;b tmp; } int main() {int a 10;int b 20;swap(a, b);swap(a, b);return 0; } 2.引用的特性 1引用必须在定义时初始化。比如int a0;这句代码其实是不合法的 在 C 中引用必须在定义时初始化这意味着当声明一个引用变量时必须立即将其绑定到一个已存在的对象变量、常量或表达式的结果与普通变量不同普通变量可以在后续赋值时初始化 2一个变量可以有多个引用 3引用一旦引用一个实体再不能引用其他实体 举个栗子 #includeiostream using namespace std;int main() {int a 10;int b a;int c 20;b c;cout a b c endl;cout a b c endl;return 0; } //这里进行了bc的操作只是把c的值赋值给了b但并没有改变b的引用实体因此a和b地址是相同的 3.引用的使用区别传值返回和传引用返回 引用在实践中主要是于引用传参和引用做返回值中减少拷贝提高效率和改变引用对象时同时改变被 引用对象 引用传参介绍过了然后我们看一下引用做返回值即传引用返回与传值返回区别 int STTop(ST rs)//注意这里是传值返回因为返回类型是int二百元引用类型的int {assert(rs.top 0);return rs.a[rs.top]; } int main() {ST st1;STInit(st1);STPush(st1, 1);//入栈STPush(st1, 2);STTop(st1)10;return 0; } 截取了一部分之前栈的操作发现对于STTop(st1)10;这个操作无法达到目的 我们本意想的是让栈顶的数据加上10但是实际上栈顶的数据并没有改变 这是因为这串代码返回的是一个值相当于我们把原来的数拷贝出了他的值然后返回了 因此就算把这份拷贝的值加上10也无法改变原来的栈顶数据 以上发生的情况就是由传值引用引发的传值引用简而言之就是为了保护源数据不被修改的场景二存在通过返回对栈顶元素的值的拷贝从而使实际上的栈顶元素不受改变 但如果代码这样改就可以轻易改变栈顶元素的值 即传引用返回 int STTop(ST rs) {assert(rs.top 0);return rs.a[rs.top]; } int main() {ST st1;STInit(st1);STPush(st1, 1);STPush(st1, 2);STTop(st1)10;return 0; } 4.const引用 const引用简而言之就是对引用范围的缩小即 const对象必须用const引用普通对象也可以用const引用但普通引用引用不了const对象 #includeiostream using namespace std; int main() {const int a 10;//只可读//int b a;//发生错误b可读可写权限变大//应加上const const int b a;int c 20;const int d c;//权限缩小可以c;//d不可以;c可以改变d不可以return 0; } 这些就涉及到权限的问题普通对象是一个变量可以被改变的所以他的权限更低。而const对象不能被改变所以他的权限更高。普通引用引用const对象权限就放大了所以编译器会报错反过来const引用可以引用普通对象因为权限是可以缩小的总结来说访问权限可以缩小但是不能放大访问权限只针对引用和指针 六.inline内联 在 C 中内联函数Inline Functions是一种优化机制旨在通过在编译时将函数体直接替换到调用位置减少函数调用的开销如栈帧压入/弹出、参数传递等 #includeiostream using namespace std; inline int add(int x,int y) {return x y; } int main() {cout add(1, 5) endl;return 0; } 对于短小的函数inline操作会使函数在编译时展开可以提高效率。但是如果这个函数过长就不适合使用内联了过长的函数内联反而会降低时间因此内联函数也并不是万能的 还有一点非常值得注意就是内联函数的定义和声明必须在同一个文件 欧克了C的入门知识大概就是这些了相比C语言还是由很多需要管制与在意的地方那就先这样吧 全文终
相关文章
-
如何在南美做网站推广怎么在手机上搭建网站
如何在南美做网站推广怎么在手机上搭建网站
- 技术栈
- 2026年03月21日
-
如何在建设部网站查询获奖情况网络做推广
如何在建设部网站查询获奖情况网络做推广
- 技术栈
- 2026年03月21日
-
如何在家里做网站广州牌手表网站
如何在家里做网站广州牌手表网站
- 技术栈
- 2026年03月21日
-
如何在税局网站上做税种认定企业网站 wordpress
如何在税局网站上做税种认定企业网站 wordpress
- 技术栈
- 2026年03月21日
-
如何在腾讯云上网站建设服装行业网站模板
如何在腾讯云上网站建设服装行业网站模板
- 技术栈
- 2026年03月21日
-
如何在外管局网站上做a合同建行信用卡中心官网
如何在外管局网站上做a合同建行信用卡中心官网
- 技术栈
- 2026年03月21日






