数组和指针的使用
1.数组
1.一维数组
//数据类型 数组名[数组长度]
int arr[5]
//数据类型 数组名[数组长度] = {数据1,数据2···}
int arr[5]={1,2,3,4,5}
//数据类型 数组名[] = {数据1.数据2···}
int arr[] = {1,2,3,4,5}
2.二维数组
//数据类型 数组名[行数][列数] = {(数据1,数据2),(数据3,数据4)···}
int arr[2][3]=
{
{1,2,3}
{4,5,6}
}
//数据类型 数组名[行数][列数] ={数据1,数据2···}
int arr[2][3]={1,2,3,4,5,6}
///数据类型 数组名[][列数] ={数据1,数据2···}
int arr[][3]={1,2,3,4,5,6}
2.指针的基本语法
int a=10;
//指针定义语法:数据类型 *变量名
int *p;
//指针指向变量a的地址
p=&a;
cout<<&a<<endl;
cout<<p<<endl;
//"*"符号取出指针地址里储存的数据
cout<<"p="<<*p<<endl;
结果:
004FFA40
004FFA40
p=10
3.const和指针的组合
int a=10;
int b=20;
//常量指针:不能修改指向地址里储存的值,但可以改变指向的地址。
const int *p =&a;
*p=20; False
p=&b; True
//指针常量:指针的指向不可改,但指针指向的地址里的值可以改变。
int * const p =&a;
*p=20; True 相当于将a的值改为20
p=&b; False
//常量指针常量:指针的指向地址和指向地址里储存的值都不能改变。
const int * const p = &a;
*p=20; False
p=&b; False
4.指针与数组
int arr[] = {1,2,3,4,5,6,7};
//指向数组的第一个数的地址
int *p =arr;
//访问第一个数
cout<<"指针的第一个元素:"<<*p<<endl;
//遍历数组
for(int i=0; i<10; i++)
{
cout<<*p<<endl;
p++;
}
5.指针和引用
引用:m,n 相当于a,b的别名,对m,n 的任何操作就是对a,b的操作(&m=a,&n=b)。
Tips:
1.引用必须初始化
2.一旦初始化,不可更改
3.&c=a;c=b 这不是更改引用,而是赋值。
###### 1.值传递
void swap01(int a,int b)
{
int temp=a;
a=b;
b=temp;
}
int a=10;
int b=20;
swap01(a,b);
cout<<a<<endl;
cout<<b<<endl;
结果:
10
20
###### 2.地址交换
void swap02(int *a,int *b)
{
int temp = *a;
*a = *b;
*b =temp;
}
int a=10;
int b=20;
swap02(&a,&b);
cout<<a<<endl;
cout<<b<<endl;
结果:
20
10
###### 3.引用交换
void swap03(int &m,int &n)
{
int temp=m;
m=n;
n=temp;
}
int a=10;
int b=20;
swap03(a,b);
cout<<a<<endl;
cout<<b<<endl;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。