1

数组和指针的使用


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;

悠悠我心
7 声望1 粉丝