C程序设计语言——八、指针(2)指针和一维数组

目录

一、指向一维数组的指针

1、数组的指针

2、指向数组的指针变量

3、数组元素的地址

4、表示数组元素

5、地址:p++(下移一个元素)

6、数值:*(p++)

7、指向数组的指针运算规则

8、等价关系

拜拜~


一、指向一维数组的指针

1、数组的指针

  1. 数组名是数组的首地址,是一个指针常量

2、指向数组的指针变量

  1. int a[10],*p;   p=a;
  2.  C规定:数组名a是数组的首地址,a+1代表下一个元素地址即 &a[1],a+i代表,&a[i] 

3、数组元素的地址

  1. &a[i]、a+i、p+i
  2. p++

4、表示数组元素

  1. a[i]、*(a+i)、*(p+i)、p[i]
  2. *p++

5、地址:p++(下移一个元素)

6、数值:*(p++)

7、指向数组的指针运算规则

  1. p+n:向后移n个元素(不是n个字节);

  2. p-n:向前移动n个元素;

  3. int *p=&a[1],*q=&a[5];q-p就是4,p-q无意义。必须指向相同数组的指针减法;

  4. 关系运算:p

  5. 指针可以与0比较:#define NULL 0        int *p = NULL;

  6. 注意:

    1. 数组名是地址常量,切不可对其赋值,也不可做自增、自减运算,但是可以进行a+n;

8、等价关系

(1) 含义 (2) 含义
*p++ 先取内容,p再++ *(p++)  先取内容,p再++
(*p)++  先取内容,内容再++ a++(int a,*p=&a) 内容++
*(p--) 先取内容,p再-- a[i--] 先取内容,下标再--
*(++p) p先下移,再取内容 a[++i] 下标先++,再取内容
*(--p) p先上移,再取内容 a[--i] 下标先--,再取内容

二、《编写函数swap(),将数组逆序输出》

//编写函数swap(),将数组逆序输出
#include
void swap(int *arr,int n)
{
	int t,i;
	for(i=0;i

拜拜~

你可能感兴趣的:(C程序设计语言,c语言,c++,visualstudio,经验分享,开发语言)