马上就要参加实习面试了,C++的某些问题却一直困扰着我,所以乘此机会回顾一下C++中自认为的难点。
首先要提的是--------指针,这是学习C语言来出现的问题,到底指针是什么,使用时的方法却一直傻傻搞不清。
1、指针是什么?
百科和书籍中说了很多,其实指针就是一个变量,只不过这个变量有些特殊,特殊在他的值是内存的地址而已,所以我们要特殊申明,所以有些人称指针就是地址的说法我觉得也是通俗可行的。
2、指针的申明?
指针怎么声明,学习过C语言的同学都看过类似的一行代码:
int *countPtr;
int y = 5;
countPtr = &y;
由上可知,*countPtr = 9,countPtr = 内存地址。
3、使用指针传递参数,那就同时提一下三种传递参数导函数的方法
(1)按值传递:最普通的方法,不在全局改变传入参数的值。
栗子及使用方法:
void transmit(int);
int main()
{
int y = 5;
transmit(y);
cout << y << endl;
return 0;
}
void transmit(int a){
a++;
}
输出为5,没有改变。
(2)引用参数的引用传递:传入参数的复制,变量在全局改变。
栗子及使用方法:
void transmit1(int &);
int main()
{
int y = 5;
transmit1(y);
cout << y << endl;
return 0;
}
void transmit1(int &a){
a++;
}
输出为6,改变了。
(3)指针参数的引用传递:传入参数的指针(地址),在全局改变。
栗子及使用方法:
void transmit2(int *);
int main()
{
int y = 5;
transmit2(&y);
cout << y << endl;
return 0;
}
void transmit2(int *a){
(*a)++;
}
输出结果为6,改变了。