很多人在学习C++时,对C++指针部分的内容总是感到疑惑,总觉得学习起来很困难
其实不然,会造成这样的原因有以下几点:
1、对指针概念模糊不清;
2、练习得少;
3、由于以上两点原因没有解决,使得在开发的过程中对频繁使用的指针更摸不清头绪。
以下例子对是*与&在程序的一些应用,能很好的帮助你了解指针的原理
#include <stdio.h>
main()
{
int a,b;
int *nunu_1,*nunu_2,*nunu_temp; /* 定义三个指针变量 ,指针变量指的是变量本身 */
scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */
nunu_1=&a; /* 指针得到的是变量a的地址而不是a的值,nunu_1指针指向的是变量a在内存中的地址 */
nunu_2=&b;
if (a<b)
{
nunu_temp=nunu_1; /* nunu_1赋给nunu_temp的是a的地址而不是a变量的值 */
nunu_1=nunu_2;
nunu_2=nunu_temp;
/* 这样变量a与b在内存中的地址交换了*/
}
printf("%d,%d",*nunu_1,*nunu_2); /* 利用*nunu_1和*nunu_2将变量a与b的值显示出来,这里的*nunu_1与*nunu_2作用是通过nunu_1和nunu_2指针中的地址访问变量a与b的值*/
}
/* 这个程序特别要注意的就是要搞清楚指针变量与指针本身的区别即*nunu_1与nunu_1和变量与变量地址的区别即a与&a的区别,弄清*nunu_1与&a与nunu_1分别在程序中的作用,一切就都会迎刃而解*/