指针与引用的区别
2017-03-24 23:30
176 查看
指针:指针指向一块内存,它的内容是所指内存的地址。
引用:引用是某块内存的别名。
指针与引用的区别如下:
1、引用必须初始化,指针可以不用初始化。
编译报错如图:
2、在sizeof中含义不同,引用表示引用类型的大小,指针始终是地址所占的字节数。
int型运行结果:
char型运行结果:
3、指针可以指向不同的变量,但引用只能指向所引用的变量。
改变引用指针指向之前打印的结果:
改变引用指针指向之后打印的结果:
4、没有NULL引用,但有NULL指针。
编译报错如图:
5、int **p,二级指针,int &&p,为幼稚引用;有多级指针,无多级引用。
6、引用比指针安全。
7、指针自增和引用自增意义不同。指针自增,指向另一块内存空间,引用自增,引用的变量加1。
运行结果:
引用:引用是某块内存的别名。
指针与引用的区别如下:
1、引用必须初始化,指针可以不用初始化。
编译报错如图:
2、在sizeof中含义不同,引用表示引用类型的大小,指针始终是地址所占的字节数。
int main() { int c1 = 10; int &c2 = c1; int *p = &c1; /*char c1 = 'a'; char &c2=c1; char *p=&c1;*/ cout << "c2:" << c2 << " "; cout << "\n" << " "; cout <<"sizeof(c2):"<< sizeof(c2) << " "; cout << "\n" << " "; cout <<"sizeof(p):"<< sizeof(p) << endl; cout << "\n" << " "; cout << "c2++:" <<++c2<<" "; cout << "\n" << " "; cout << "p++:" << ++p << " "; system("pause"); return 0; }
int型运行结果:
char型运行结果:
3、指针可以指向不同的变量,但引用只能指向所引用的变量。
char c1 = 'a'; char c3 = 'd'; char &c2=c1;//c2引用c1 char *p=&c1;//p指向c1 c2 = c3;//c2仍引用c1,但此时c1的值为d p = &c3;//此时p指向c3
改变引用指针指向之前打印的结果:
改变引用指针指向之后打印的结果:
4、没有NULL引用,但有NULL指针。
int c1 = 10; int &c2 = NULL; int *p = NULL;
编译报错如图:
5、int **p,二级指针,int &&p,为幼稚引用;有多级指针,无多级引用。
6、引用比指针安全。
7、指针自增和引用自增意义不同。指针自增,指向另一块内存空间,引用自增,引用的变量加1。
int main() { int c1 = 10; int &c2 = c1; int *p = &c1; cout << "c2:" << c2 << " "; cout << "\n" << " "; cout << "c1:" << c1<< " "; cout << "\n" << " "; cout <<"p:"<< (int)p << " "; cout << "\n" << " "; cout << "c2++:" <<++c2<<" "; cout << "\n" << " "; cout << "p++:" << (int)++p << " "; system("pause"); return 0; }
运行结果:
相关文章推荐
- C++点滴:向函数中传递指针和传递指针的引用的区别:
- 引用与指针的区别
- 指针与引用的区别
- 引用和指针的主要区别
- 指针和引用的区别
- 指针和引用的区别总结
- 引用与指针的区别(转载)
- 指针与引用的区别
- 指针和引用的区别
- 指针与引用的区别(More Effective C++)
- 引用和指针的使用区别
- 指针与引用的区别(摘自Effective C++)
- C++中引用和指针的两个重要区别
- C++中指针(pointer)和引用(reference)的区别和联系
- 指针与引用的区别
- 指针和引用的区别
- c++中指针,指针的引用,指针的指针的区别
- 指针与引用的区别 (MoreEffictive C++)
- 指针与引用的区别
- 指针与引用的区别