概述
1.以后用C++写东西,因此其后缀为.cpp
2.代码解释:
#include<iostream>//输入输出流的头文件 cin cout
using namspace std;//打开命名空间,这句话包含了cin,cout,用了之后才能用cin,cout
3.bool类型
表示真(true)或假(false),0或1,大小为一个字节
4. &引用:用来给变量取别名(就是取个小名)
用法:真名的类型 & 别名=真名
int &x=a;//给变量a取了别名叫x
更深层次的是以下例子:
#include<iostream>
bool fun1(int &a,int &b)//类似int *a=&a;
{
a=110;
b=110;
return a==b;
}
int main()
{
cout<<fun1(2,6)<<endl;//这句话是错误的
//因为引用的话,必须要引用一块合法的内存空间
//所以得定义以下
int a=2,b=6;
cout<<fun1(a,b)<<endl;//这句话是对的
return 0;
}
通过&外部变量可以直捣其函数的内部
引用参数,可以达到在函数内部所操作的数据就是函数外部的数据(相当于地址传递)(上面的程序就是例子)
引用大小占4个字节,对于传参来说,如果类型比较大,除了指针之外,多了一种选择方式
那么指针和引用的区别:
a.指针是一个有内存的实体,而引用只是个外号
b.引用是常量,常量必须初始化
c.指针可以赋空值
d.指针的内存唯一的,引用不唯一
5.#define N 10空间换时间
类似的,函数有内联
inline void fun(){}
在函数前面加上incline就是内联函数
如果出现函数体的代码过长,如果有循环,不建议使用内联
使用的情况:简单的赋值语句,简单的返回语句(函数体少,使用频率高)
6.函数重载
构成函数重载的条件:a.函数名一致b.参数列表位置不同,构成函数重载
例子:
int arr(int a,int b){return a+b;}
void arr(double a,double b) {printf("%lf",a+b);}
//这个arr函数构成函数重载
但是
出现下面情况的时候:
void a(int b){}
void a(float b){}
容易出现二义性,此时的话,VS会帮助我们把基本数据类型的大类型转成小类型
7缺省函数
函数的缺省参数(也就是形参有初始化的值)
a.参数的缺省只能由后往前缺省,依次缺省,不能由前往后
void fun(int a,int b=2,int c=3);//可以这样写
void fun(int a,int b=2,int c);//不可以可以这样写
b.参数的缺省,在只有定义的情况下可以直接写在定义上,如果有声明,只要在声明中缺省,定义不需要
定义:void fun(int a,int b,int c);
声明:void fun(int a,int b=2,int c=3);
c.缺省参数的过程,如果对应位置不给出实参,就直接用缺省的参数,如果给出实参,会用实参替换掉缺省的参数
d.参数的缺省如果和重载混合一起使用,一定要注意因为缺省参数导致的二义性
void fun(int a,int b=10,int c=20){} 这样从第2个形参开始有默认参数了后面的参数就必须要有默认参数
void fun(int a){} 如果上下有这么两个函数就会在调用(<fun(1)>)下面这个函数的时候出现二义
首先:同时用这两个函数的时候会报错
void fun(int a=1,int b=1,int c=1,int d=1)
{
cout<<a<<"t"<<b<<"t"<<c<<"t"<<d<<endl;
}
void fun()
{ cout<<"haha"<<endl;
}
最后
以上就是激情康乃馨为你收集整理的C++学习笔记之语法1的全部内容,希望文章能够帮你解决C++学习笔记之语法1所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复