div做网站排版,在南昌市做网站到哪,中国家具网,全景网站模版1. c与c语言的区别
c兼容c语言90#xff05;以上的语法与规则#xff0c;c语言相当于用锤子和凿子制作工艺品#xff0c;c相当于用电钻#xff0c;电动雕刻刀制作工艺品。 2. c的框架 #includeiostream //stdio.h的升级版
using namespace std; //展开命…1. c与c语言的区别
c兼容c语言90以上的语法与规则c语言相当于用锤子和凿子制作工艺品c相当于用电钻电动雕刻刀制作工艺品。 2. c的框架 #includeiostream //stdio.h的升级版
using namespace std; //展开命名空间stdint main()
{//主程序return 0;
}2.1 关于iostream io 即 in、outstream 即 流连在一起就是输入输出流。是stdio.h标准输入输出的升级版本。 2.1 关于using namespace std
using namespace std 直接翻译就是 使用--命名空间--std通常叫做-----展开命名空间--std。 3. 命名空间概述
#includeiostream //stdio.h的升级版
using namespace std; //展开命名空间stdnamespace abc
{int a 10;int b 3;
}int main()
{int a 99;cout a endl;cout abc::a endl;return 0;
}以上程序中创建了一个abc的命名空间里面有a10b3 两个变量。在主函数中可以定义相同名字的变量并选择性的使用他们需要使用命名空间内的a就可以用空间名变量名。两个冒号。
同样的命名空间里可以使用函数和结构体等。
举个例子在一个枪战游戏项目中我负责的是自动步枪射击的模块我老婆负责的是狙击枪的射击模块自动步枪的射击是连续的按下开枪键位连续发射子弹而狙击枪是按一次发射一次子弹如果没有命名空间我们的射击函数名都叫shoot那么我们俩的模块合并之后在主程序中调用shoot到底是调用的哪个shoot
所以可以把两个人写的shoot分别放到自己的命名空间里调用步枪的射击函数时可以用
我shoot………… 调用狙击枪的射击函数时可以用 我老婆shoot…………。 3.1 命名空间的展开
1. 指定命名空间
参照下面的程序段
#includeiostream //stdio.h的升级版
using namespace std; //展开命名空间stdnamespace 我
{void shoot(){cout 我的shoot endl;}
}namespace 我老婆
{void shoot(){cout 我老婆的shoot endl;}
}int main()
{我老婆::shoot();我::shoot();return 0;
}
输出为 这种调用方式是指定命名空间的方法。 2. 指定命名空间的内容展开 这里的 using 我老婆shoot就是指定展开了一个命名空间里的函数. 3. 展开整个命名空间 、
3.2 命名空间总结
1.指定命名空间
2.指定命名空间的内容展开
3.展开整个命名空间 4. 缺省函数
先看代码
#includeiostream //stdio.h的升级版
using namespace std; //展开命名空间stdnamespace lty
{void shoot(int x, int a 10, int b 3){cout x a - b endl;}
}int main()
{using namespace lty;shoot(1);return 0;
}
这段代码中shoot的参数有3个分别是xa10b3。默认情况下我们调用shoot1输出结果为110-38。
所以缺省函数可以理解为带有默认参数值的函数并且参数中的默认参数值必须在后面。 这种写法是不对的
因为默认参数在后面所以调用shoot(5,8)的话5是给a的8是给b的x的值是随机值。
传值是按顺序传的所以int x必须放在前面这样传1个值默认就是给x赋值了。 4.1 全缺省和半缺省
全缺省函数就是----参数全部带有默认值的函数。
半缺省不用多说。 4.2 缺省函数的应用价值
在顺序表中扩容的消耗非常大需要不停的寻找新的空间并拷贝数据。
如果已经知道需要多大的空间那么使用缺省参数就可以很方便的通过传参一次性扩容。
参见下面的代码
#includeiostream
using namespace std;typedef int datatype;typedef struct stack
{datatype* lty;int num;int size;
}stack;//栈初始化
stack* stackinit(int a 4) //默认参数为4
{stack* tempstack(stack*)malloc(sizeof(stack));datatype* tempdata (datatype*)malloc(sizeof(datatype) * a); //默认申请4个数据的空间tempstack-lty tempdata;tempstack-num0;tempstack-size a;return tempstack;
}int main()
{stack* lty stackinit(20); //直接申请20个数据的空间for (int k 0; k 20; k){lty-lty[k] k k;}lty-num 20;for (int k 0; k 20; k) //输出栈内的数据{cout lty-lty[k] --;}return 0;
}
函数默认参数为a4那么调用函数不传值初始化默认开辟4个数据的空间。
传20给stackinit就会开辟20个数据的空间。 完毕