hyx-ahpu

C++语法基础

C++语法基础 C++的语法与C语言再很多地方并无差异,本篇主要是对C++中一些独有的语法进行整理 一、 基本结构 对比C语言中的一堆include,C++似乎显得更加简介,我们可以使用#include这个万能头文件,省去不少书写代码的麻烦。 但是区别于C语言,C++在#include之后一般会加上using namespace std; 这句语句的意思是将标准命名空间 std 中的所有名称引入到当前作用域中。 如果没有这句语句,一个简单的Hello, World!的代码需要这么写,我们发现cout,endl等函数均需要加上std:: #include int main() { std::cout << "Hello, World!" << std::endl; // std::string myString = "Hello"; return 0; } 而在使用了之后,程序就变成了 #include using namespace std int main() { cout << "Hello, World!" <>”(提取操作符)和“<<”(插入操作符) 当然这里要注意,printf和scanf与cout和cin是不能混合使用的 接下来说一下最近做题时遇到的保留小数点后几位(fixed)的写法 cout << fixed << setprecision(n) << value << endl; 由于cin和cout需要自动判断变量类型等内部原因,读写效率比格式化的输入输出要低,尤其是在处理大量数据时,这时我们可以使用取消同步流的操作进行优化 ios :: sync_with_stdio(0), cin.tie(0), cout.tie(0); 三、 函数 C++的函数习惯语法与C语言几乎没有差异,这里主要讲C++与C语言语法上的一些差异 首先就是引用传递 值传递:传递参数的副本,不影响原变量 引用传递:传递参数的引用,会影响原变量 #include using namespace std; int func_a(int x){ x = 100; return x; } int func_b(int &y){ y = 100; return y; } int main(){ int x, y; x = 50; y = 50; cout << "before: x=" << x << ", y=" << y << endl; int a = func_a(x); int b = func_b(y); cout << "return: a=" << a << ", b=" << b << endl; cout << "after: x=" << x << ", y=" << y << endl; return 0; } 我们可以从上面这段代码来理解值传递和引用传递的区别 输出结果: before: x=50, y=50 return: a=100, b=100 after: x=50, y=100 我们可以发现,在调用函数后,值传递的参数x没有进行修改,内存中创建了一个x的副本a传递给函数func_a,后续输出的x依旧是原来设定的结果,而引用传递的参数y在调用函数func_b后,他的值被修改了。 其次是函数的重载,C++允许同名函数有不同的参数列表,这称为函数的重载 eg: #include using namespace std; int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } int main() { cout << add(3, 4) << endl; // 输出7 cout << add(3.5, 4.5) << endl; // 输出8.0 return 0; } 输出结果: 7 8.0

posted on 2025-11-24 22:00  后宇翔  阅读(0)  评论(0)    收藏  举报

导航