个人见解(2)指针和一维数组
来源:互联网 发布:人工智能的原理 编辑:程序博客网 时间:2024/06/06 13:13
1.利用指针指向数组
指针变量中可以存放另一个变量的地址,而数组在之前的学习中说道数组是内存中一段连续的地址(即按序存放);也就是说我们只要知道数组的首地址,存入指针中,根据指针的运算特性,我们可以知道数组各个元素的地址,并且引用它们;
代码:
int arr[10];int *p;p=&arr[2];p=arr;
定义一个数组和指针p;p=&arr[2],代表p指向了arr[2]的地址,又因为数组名即数组在内存开辟一段连续的地址的首地址,p=arr,代表p指向数组的首地址,当然也可以写成p=&arr[0];又利用*运算符,得出*p==arr[0];
2.利用指针调用数组元素;
了解指针的一个特性:如果指针p指向数组其中的某个元素,那么p+1便指向下一个元素;
通过这个特性,我们就能用指针调用数组中的任意一个元素了;
下面是在我几本书中收集的指针和数组的对应关系:
首先定义:
int a[10],*p;p=a;
1.数组的第i个元素的地址可以表示成:&a[i] , p+i , a+i
2.数组中第i个元素的值(运算):a[i] , (p+i) , *(a+i)
3.指向数组的指针变量也可以带下标:p[i]==*(p+i)
下面我给出一些等价代码来使用指针来输出数组和接受赋值:
#include <stdio.h> int main (){ int a[10],*p=a,i;// for (i=0;i<10;i++)// scanf("%d",&a[i]); for (i=0;i<10;i++) scanf("%d",p++); //等价于上面的scanf// for(i=0;i<10;i++)// printf("%d ",a[i]); p=a; // 因为在scanf中指针自加了,这里要让指针重新指向a的首地址 for(i=0;i<10;i++) printf("%d ",*p++); //等价于上面的printf return 0;}
0 0
- 个人见解(2)指针和一维数组
- 对C语言一些个人见解系列:指针和一维数组的关系
- 指针数组和数组指针之个人见解
- 浅谈数组指针、指针数组、函数指针、函数指针数组、函数指针数组指针,个人见解。
- 指针的个人见解(1)
- 指针数组和数组指针(一)
- 一维数组和指针
- 数组和指针(一)
- 关于指针的个人见解
- 一维数组和数组指针
- 一维指针和数组,二维指针和数组
- 关于一维数组、二维数组、一级指针、二级指针、指针数组、数组指针、空指针、字符指针、const的个人理解
- 二维数组指针和一维数组指针的区别
- 指针数组和数组指针的区别(一)
- 指针和数组——(个人笔记)
- 【转】dodo:人脸识别方法个人见解(一)
- 【C和指针】第八章(1)-->一维数组
- C 指针和一维数组
- 27.explain
- 韩顺平java笔记03
- 【备忘】JavaEE项目大全视频教程下载
- T-SQL字符串的N‘
- 安装VirtualBox遇到的错误
- 个人见解(2)指针和一维数组
- 利用MATLAB进行车辆的速度测量
- MD5加密
- 聊聊并发(五)——原子操作的实现原理
- What we will Miss from Java in 2016?
- java位运算
- eclipse开发c语言程序
- Swift 笔记自己学习时候用的(后续还有)
- windows下,C++实现串口编程,串间口转发数据