C++学习记录(二)
- 常用标准库函数之数学函数
#include
using namespace std;
函数名 | 功能 |
---|---|
exp(x) | ex |
pow(x,y) | xy |
sqrt(x) | x的平方根,x>=0 |
fabs(x) | |x| |
log(x) | lnx,x>0 |
log10(x) | lgx,x>0 |
sin(x) | sinx,x为弧度值 |
cos(x) | cosx,x为弧度值 |
- 引用
-
类型名&引用名=某变量名
例:
int n=4;
int & r=n;//r引用了n,则r的类型是int &
-
某个变量的引用,等价于这个变量,相当于该变量的一个别名。
例:
int n=7;
int & r=n;
r=4;
cout<<r;//输出4
cout<<n;//输出4
n=5;
cout<<r;//输出5
-
注意
1.定义引用时,一定要将其初始化成引用某个变量。
2.初始化后,它就一直引用该变量,不会再引用别的变量。
3.引用只能引用变量,不能引用常量和表达式。
引用应用的简单举例
-编写交换两个整形变量的函数
void swap(int & a,int & b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
int n1,n2;
swap(n1,n2);//n1,n2的值被交换
-引用作为函数的返回值
int n=4;
int & SetValue()
{
return n;
}
int main()
{
SetValue()=40;
cout<<n;
return 0;
}//输出:40
常引用
-
定义引用时,前面加const关键字即为“常引用”。
int n;
const int & r=n;
其中r的类型为const int &
-
注意:不能通过常引用去修改其引用的内容
int n=100;
const int & r=n;
r=200;//编译出错
n=300;//没问题
-
常引用和非常引用的转换
设类型为T
-const T &
和T &
是不同的类型
-T &
类型的引用或T类型的变量可以用来初始化const T &
类型的引用
-const T
类型的常变量和const T &
类型的引用则不能用来初始化T &
类型的引用,除非进行强制类型转换。
const 关键字
- 定义常量指针
-
不可以通过常量指针修改其指向的东西的内容。
int n,m;
const int *p=&n;
*p=5;//编译出错
n=4;//OK
p=&m;//OK,常量指针的指向可以变化
-
不能把常量指针赋值给非常量指针,反过来可以。
const int *p1;
int *p2;
p1=p2;//OK
p2=p1;//error
p2=(int*)p1;//OK,强制类型转换
-
函数参数为常量指针时,可以避免函数内部不小心改变参数指针所指的地方的内容。
void MyPrintf(const char *p)
{
strcpy(p,"this");//试图修改,编译出错
printf("%s",p);
}