C语言指针变量与一维数组
数组元素之间的地址是相连的;
变量地址绝对不是相连的,如果找到规律那也只是一个偶然的,不是必然的;
1. 指针变量和一位数组
下面对指针数组进行分析,index(小标是从0开始),array数组是int类型,每一个元素占据4个字节。
#includeint main(void){ int a[5] = {10,20,30,40,50}; int *p; printf("a[0]的地址:%d\n",&a[0]); // 取地址 printf("a[1]的地址:%d\n",&a[1]); printf("a[2]的地址:%d\n",&a[2]); printf("a[3]的地址:%d\n",&a[3]); printf("a[4]的地址:%d\n",&a[4]);printf("--------------------------------\n"); printf("a的地址:%d\n",a); // 数组名 a = a[0] printf("a+1的地址:%d\n",a+1); // 相当于 a[1] 的地址 printf("a+2的地址:%d\n",a+2); printf("a+3的地址:%d\n",a+3); printf("a+4的地址:%d\n",a+4); return 0;}
2. 指针变量引用一维数组
#includeint main(void){ int a[5] = {10,20,30,40,50}; int *p; printf("&a[2]+2的地址:%d\n",&a[2]+2); // 等于 &a[4] // *a[2] 这样取数组的值会报错的 printf("*(a+2)的值:%d\n",*(a+2)); // a[2] = 30printf("*a+3的值:%d\n",*a+3); // 13 (*星号的优先级高于 + 先算 *a的值再加3) printf("--------------------------------\n");p = a; // p = &a;printf("p的地址:%d\n",p); printf("p+1的地址:%d\n",p+1); printf("p+2的地址:%d\n",p+2); printf("p+3的地址:%d\n",p+3); printf("p+4的地址:%d\n",p+4); printf("--------------------------------\n");printf("*p的值:%d\n",*p); printf("*(p+1)的值:%d\n",*(p+1)); printf("*(p+2)的值:%d\n",*(p+2)); printf("*(p+3)的值:%d\n",*(p+3)); printf("*(p+4)的值:%d\n",*(p+4));printf("--------------------------------\n");p = &a[2]; printf("p的地址:%d\n",p); // &a[2] printf("p+1的地址:%d\n",p+1); // &a[3] printf("p+2的地址:%d\n",p+2); // &a[4] printf("p+3的地址:%d\n",p+3); // &a[5] 野地址 printf("p+4的地址:%d\n",p+4); // &a[6] 野地址printf("--------------------------------\n");
//a = &a[2]; //错误,a代表a[0]是一个常量,赋值只能给一个变量所以会出错,a 必须是一个左值 return 0;}
3. 指针一维数组地址关系
4. 指针一维数组内容关系
声明:
本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
C语言指针变量与一维数组相关推荐
- 【c语言】用指针变量输出一维数组中的数据
#include<stdio.h> void main(){ int i,*m,a[5]; printf("数组:"); //普通方式输出数组的元素 ...
- c语言指针变量的定义数组的长度,【C语言更新】指向数组的指针
文/Edward 前面我们在讲述数组的时候曾经说过,对于数组内部元素的引用方式主要有两种,一种就是使用方括号"[]"的下标索引,另一种就是之前提到过,但是没有细致讲述的指针引用. ...
- C语言指针变量可以当做数组吗?
比如说定义int *w 然后下边就可以用作w[i] 这么对吗? 对的话在什么情况下可以这么使用? 答:可以,但是不准确,因为w这时还是野指针.只有这样 int *w,a[44]; w=a; 然后下边就 ...
- C语言指针变量的使用
C语言指针变量的定义和使用(精华) < 1分钟彻底理解指针的概念C语言指针变量的运算 > C语言中文网推出辅导班啦,包括「C语言辅导班.C++辅导班.算法/数据结构辅导班」,全部都是一对一 ...
- (转)字符型指针变量与字符数组的区别
(1)分配内存 设有定义字符型指针变量与字符数组的语句如下: char *pc ,str[100]; 则系统将为字符数组str分配100个字节的内存单元,用于存放100个字符.而系统只为指针变量pc分 ...
- 第十节 字符串指针变量与字符数组的区别(十一)
用字符数组和字符指针变量都可实现字符串的存储和运算.但是两者是有区别的.在使用时应注意以下几个问题: 1) 字符串指针变量本身是一个变量,用于存放字符串的首地址.而字符串本身是存放在以该首地址为首的一 ...
- C语言指针变量的运算
前言 指针变量也是可以进行运算的,如指针变量对其自身加上某个整数或减去某个整数,这在内存上体现为:相对这个指针向后偏移多少个单位或向前偏移了多少个单位,这里的单位与指针变量的类型有关.在32bit环境 ...
- c语言实验报告5数组,c语言实验报告五一维数组.doc
c语言实验报告五一维数组 <C程序设计>课程实验报告 学院: 班级: 姓名: 学号: 实验设备:计算机1台2011年3月1日 实验项目名称一维数组 掌握一维数组的定义.初始化,以及一维数组 ...
- c语言两个指针变量不可以,2.C语言指针变量
# 2.C语言指针变量 变量的指针就是变量的地址.存放变量地址的变量是指针变量.即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量.因此,一个指针变量的值就是某个变量的地址或称为某变量的指针 ...
最新文章
- 2022-2028年中国加密货币交易所市场研究及前瞻分析报告
- SAP RETAIL初阶之事务代码MP83 显示一个预测参数文件
- java堆与非堆的一些研究_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...
- pip install -r requirement.txt 后 提示No such file or directory: ‘requirements.txt‘
- Delphi项目的构成(Files That Make Up a Delphi Project)
- MySQL 覆盖索引、最左前缀原则、索引下推
- Tarjan缩点简析
- CentOS中一些基本的操作记录
- Codevs 1506 传话
- CSS2.0样式手册_说明_SDK下载chm
- Java多线程(一)——多线程实现方法和生命周期
- fcbf特征选择python_全自动机器学习:自动特征筛选(B)R语言自动特征工程实现...
- 40个令人惊讶的photoshop文字效果教程
- Springboot结合ESAPI——配置XSS防御过滤
- 信息安全等级保护测评师模拟考试
- 七色的寒冷彩虹便冒了出来
- 微信小程序中用户登录和登录态维护
- 69的人因为穷不谈恋爱,这届年轻人脱单太难了
- spring事物配置备份
- poi word设置字体背景颜色(也叫底纹)
热门文章
- weakreference_Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别...
- java 基础包的功能_Java 8的功能基础
- JavaFX技巧31:遮罩/剪切/ Alpha通道
- Spring项目的按层打包已过时
- JDK 9 @不建议使用的注释增强功能
- jpa 与非jpa 结合_EasyCriteria –使用JPA标准的简便方法
- 教程:正确的SLF4J日志记录用法以及如何检查它
- 红帽峰会2015所需的JBoss BPM内容指南
- 摆脱困境:将属性值注入配置Bean
- Apache Camel 2.14中的更多指标