指针就是其值为内存单元地址的变量!
一个指针包含的则是一个变量的地址!
每一个指针变量名字前面都必须有一个:*符号作为前缀!
指针运算符:
#include<iostream>
using namespace std;
int main()
{
int *a;int b;
cout<<&a<<endl;
cin>>b;
a=&b;
cout<<*a<<" "<<b<<endl;
}
通过程序了解一下&和*的使用吧!
#include<iostream>
using namespace std;
int main()
{
int a;int *b;
a=7;
b=&a;
cout<<"a的地址:"<<&a<<" b的地址:"<<b<<endl;
cout<<"a的值: "<<a<<" b的值: "<<*b<<endl;
cout<<"&*b: "<<&*b<<"\n*&b "<<*&b<<endl;
}
&a是取得a的地址。
b原本就是代表一个地址的意思!
*b只是说明一个指针指向了这个地址!
其他的,&a:这个是比较基础的输出数值!
*b:是一个指针指向这个地址输出它地址代表的数值!
*b:这个代表的是一个数值啦!&:意思是取某一个数的地址!
如下图,b的单独出现就是一个地址,&b是对他的地址再次取地址!
&b就是将他指向a的地址!
向函数传递数组时,无需使用&运算符。因为数组名作为实参的时候,系统自动将数组在内存中起始地址传递给函数。
一个变量的地址传递给函数的时候,该函数可以使用间接寻址运算符()来修改主调函数里面的数值!
#include<iostream>
using namespace std;
int s(int n)
{
return n*n*n;
}
int main()
{
int a=4;
cout<<"a的值: "<<a<<endl;
cout<<"a调用函数后:"<<s(a)<<endl;
}
引用调用实际是将数的地址传递给了函数!
下面来看运用指针的:
这个没有使用指针就会报错误啦!
运用指针的:
这个直接对地址所对应的数进行修改!
直接输出原来的a地址所对应的数。
但是a的数值已经发生改变啦!