一维数组的声明
```
数组类型 数组名 [常量表达式]
```
常量表达式表示的是数组的个数,即数组的长度,且不能是变量。
一维数组的引用
```
数组名 [下标]
```
一维数组的初始化
1.逐个对元素赋值
```
char a[3]
a[0] = ‘a‘
a[1] = ‘b‘
a[2] = ‘c‘
```
2.聚合方式赋值
```
int a[12] = [1,2,3,4,5,6,7]
```
二维数组
```
数组类型 数组名 [常量表达式1][常量表达式2]
```
下标运算中的整数表达式代表数组每一个维的长度,乘积代表整个数组的长度。
二维数组的引用
```
数组名[下标][下标]
```
二维数组的初始化
```
a[0][1] = 12
int a[3][4] = [1,2,3,4,5,6,7,8,9,10,11,12]
```
字符数组
1.声明
char a[11]
2.赋值
a[0] =‘a‘
char a[] = [‘a‘]
3.聚合方式只能在声明时使用。
4.字符数组不能给字符数组赋值
5.字符数组常做字符串使用,要有字符串结束符‘\0’
6.可以使用字符串给字符数组赋值
7.字符串处理函数:
字符串连接函数:stract()
```
stract(字符数组1,字符数组2)
```
功能:将字符数组2的字符串连接到字符数组1后,并删去字符串1的‘\0‘
字符串复制函数:strcpy()
stracpy(字符数组1,字符数组2)
功能:把字符数组2中的字符串复制到字符串1中,‘\0也一起复制。‘
字符串比较函数:strcmp()
```
strcmp(字符数组1,字符数组2)
```
功能:按照ASCII码顺序比较数组中的两个字符串,并将结果返回,若1>
2,返回一正数,1=2,返回0,1<2,返回一负数。
字符串长度测量函数:strlen()
```
strlen(字符串数组名)
```
功能:测量字符串的长度,不包括‘\0‘,并返回结果
指针
1.代码中通过变量名对内存进行存取操作,代码编译后,将变量名转换为该变量在内存的存放地址,对变量值得存取都是通过地址进行的
2.一个变量的地址称为该变量的指针。
3.如果有一个变量专门用来存放另一个变量的地址,它就是指针变量
4.专门用来存放单元地址的变量类型,就是指针类型
5.指针是一种数据结构,通常所说的指针就是指针变量,它是一个专门用来存放地址的变量,而变量的指针主要指变量在内存中的地址。变量的地址在编写代码是无法获取,只有在程序运行时才可以得到。
指针的声明:
```
数据类型标识符 *指针变量名
```
6.指针的赋值:指针可以在初始化时赋值,也可以在后期赋值。
- 初始化赋值:
```
int i=100;
int *p=&i;
```
- 后期赋值:
```
int i=100;
p=&i;
```
7.通过一个变量名访问一个变量实战直接的,而通过指针访问一个变量时间接的。
8.指针变量名是p,而不是*p
p=&i :取变量i的地址赋给指针变量p
9.指针一定要有明确的指向
10.指针变量不可以直接赋值
11.不能将*p当变量使用
指针运算符和取地址运算符
1.*是指针运算符
2.&是取值运算符
3.自右向左运算
`&*p` :*p相当于变量a,再进行&运算,就相当于取变量a的地址
`*&a`:&a取变量a的地址,再进行*运算,相当于取变量a所在地址的值,即就是变量a
指针与数组
1.指针与一维数组
引用数组元素:下标法和指针法
指针引用数组:
```
int a[10]
int *p
p = &a[0]
```
2.指针与二维数组
```
int a[4][3]
int *p
p = &a[0]
```
1.a+n表示第n行的首地址
2.&a[0][0]可以看做0行0列的首地址,也可以看做二维数组的首地址
3.a[0]+n表示第0行第n个元素的地址
4. *(*(a+n)+m)表示第n行第m列元素
5.*(a[n]+m)表示第n行第m列元素
3.指针与字符数组
```
char *string = "www.mingri.book"
```
指向函数的指针
函数在编译时会被分配一个入口地址,这个函数入口地址就称为函数的指针
返回指针类型的值得函数简称为指针函数
```
类型名 *函数名(参数列表)
```
引用
```
数据类型 & 表达式
```
(1)一个引用被初始化后,无法使用它再去引用另一个对象,它不能被重新约束
(2)引用变量只是其他对象的别名,对它的操作与原来对象的操作具有相同作用
(3)指针变量与引用有两点主要区别:
- 一是指针是一种数据类型,而引用不是一个数据类型,指针可以转换为它所指向变量的数据类型,以便赋值运算符两边的类型相匹配;而在使用引用时,系统要求引用和变量的数据类型必须相同,不能进行数据类型转换。
- 二是指针变量和引用变量都用来指向其他变量,但指针变量使用的语法要复杂一些;而在定义了引用变量后,其使用方法与普通变量相同
(4)引用应该被初始化,否则会报错
使用引用过来传递参数
函数的参数传递分两种:值传递,引用传递
值传递:函数调用时,将实际参数的值赋值一份传递到调用函数中,这样如果在调用函数中修改了参数的值,不会影响到实际参数的值
引用传递则恰恰相反,调用函数修改了参数的值,改变会影响到实际参数。
指针传递参数
- 指针变量可以作为函数参数。
- 使用指针变量传递参数和使用引用传递参数方式的执行效果相同
数组做函数参数
如果传递的出纳室都是同一类型则可以通过数组的方式来传递参数,作为参数的数组可以是一维数组,也可以是多维数组
指针数组
一维指针数组的定义:
```
类型名 *数组名[数组长度]
```
指针数组中的数组名也是一个指针变量,该指针变量指向指针的指针
原文地址:https://www.cnblogs.com/lalavender/p/10487009.html