指针使用下标时,可以理解为数组。
例如:
  char ∗\ast∗p = “abcdef”;
  此时p[2]值为’c’;
  而p表示字符串"abcdef"的首地址;
  ∗\ast∗p的值则相当于p[0],值为’a’。

指针或一维数组名作为函数参数;两者是等价的。

例1:指针p和数组名arr的关系

附例1代码:

//小问学编程
#include<stdio.h>int main()
{int arr[5]={1,2,3,4,5};int* p=arr;printf("%d\n",arr[2]);printf("%d\n",p[2]);printf("%d\n",*arr);printf("%d\n",*p);printf("%d\n",arr);printf("%d\n",&arr);printf("%d\n",p);return 0;
}

例2:用四个函数来说明指针p和数组名arr的关系

附例2代码:

//小问学编程
#include<stdio.h>void print1(int arr[],int len)
{for(int i=0;i<len;++i){printf("%d",arr[i]);}printf("\n");
}void print2(int* p,int len)
{for(int i=0;i<len;++i){printf("%d",p[i]);}printf("\n");
}void print3(int arr[],int len)
{int i=0;while(i<len){printf("%d",*arr);++arr;++i;}printf("\n");
}void print4(int* p,int len)
{int i=0;while(i<len){printf("%d",*p);++p;++i;}printf("\n");
}int main()
{int arr[5]={1,2,3,4,5};int* p=arr;print1(p,5);print2(p,5);print3(p,5);print4(p,5);printf("\n");print1(arr,5);print2(arr,5);print3(arr,5);print4(arr,5);return 0;
}

例3:指针p和数组名arr在本例中所占的空间都是4个字节

附例2代码:

#include<stdio.h>void f(int arr[],int* p)
{printf("%d,%d\n",sizeof(arr),sizeof(p));
}int main()
{int arr[5]={1,2,3,4,5};int* p=arr;printf("%d,%d\n",sizeof(arr),sizeof(p));f(arr,p);return 0;
}

C++之指针探究(十二):指针、下标、数组及其作函数参数相关推荐

  1. C语言:批量初始化二维整型数组及二维整型数组作函数参数的重要知识点[C_006]

    目录 概述:二维整形数组和二维字符数组在处理过程中有些微妙的差异值得注意,否则容易出错. 1.二维整形数组的初始化 2.常见场景:把二维整形数组的元素初始化为相同值 3.应用场景,二维数组作函数的参数 ...

  2. C++之指针探究(十六):typedef结合函数指针

    相关博文:C++之指针探究(十三):函数指针数组 相关博文:C++之指针探究(十二):指针.下标.数组及其作函数参数探究 相关博文:C++之指针探究(十一):函数名的本质和函数指针 相关博文:C++之 ...

  3. C++之指针探究(十五):回调函数应用之qsort排序

    相关博文:C++之指针探究(十三):函数指针数组 相关博文:C++之指针探究(十二):指针.下标.数组及其作函数参数探究 相关博文:C++之指针探究(十一):函数名的本质和函数指针 相关博文:C++之 ...

  4. C++之指针探究(十四):回调函数

    相关博文:C++之指针探究(十三):函数指针数组 相关博文:C++之指针探究(十二):指针.下标.数组及其作函数参数探究 相关博文:C++之指针探究(十一):函数名的本质和函数指针 相关博文:C++之 ...

  5. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 变量的地址就是指针,存放指针的变量就是指针变量(因而又叫作地址变量 address variable); 这个地址编号本身就是一个无符号的整数,在32位系统下为4字节(8位 ...

  6. C++之指针探究(四):指针和二维数组

    前文:C++之指针探究(三):指针数组和数组指针 一. 二维数组 二维数组通常也被称为矩阵(matrix). 六种初始化方式:   (1) int a[3][4] = {1,2,3,4,5,6,7,8 ...

  7. C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例

    C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...

  8. 指针--用指针变量作函数参数的实例(按值调用与模拟按引用调用)、函数指针及其应用

    一.用指针变量作函数参数的实例 思考题: 例题:从键盘输入某班学生某门课成绩(每班人数最多不超过40人,具体人数由键盘输入),是分析下列程序是否能实现计算并输出最高分以及相应学号. #include ...

  9. C语言学习之用函数处理,而且用指针类型的数据作函数参数,对输入的两个整数按大小顺序输出

    对输入的两个整数按大小顺序输出.用函数处理,而且用指针类型的数据作函数参数. int main(){void swap(int *p1,int *p2);//声明swap函数 int a,b;int ...

最新文章

  1. 【SPOJ】Count On A Tree II(树上莫队)
  2. 从数据类型 nvarchar 转换为 numeric 时出错_Python数据分析类库系列Numpy之ndarray的数据类型...
  3. Magicodes.IE基础教程之导出Pdf
  4. 阅读Java_如何阅读 Java 开源代码?
  5. ubuntu命令之dpkg
  6. 设计模式(2)-抽象工厂模式(Abstract Factory)与生成器模式(Builder)模式
  7. ARP协议,ARP攻击的原理,网络执法官的具体实现
  8. 计算机主机跳线连接图片,台式电脑主机五根跳线怎么接?红白 蓝白 绿 白 橙白...
  9. 信不信由你,反正我是信了!接龙啊。。。。。
  10. Eclipse所有快捷键
  11. j1_8。实现打折功能关键算法。编写程序计算购买图书的总金额。
  12. HTTPS中CA证书的签发及使用过程
  13. MIGO 抬头屏幕自定义字段增强示例
  14. STM32Cube_FW_F4_V1.17 F4固件包百度网盘下载
  15. Mybatis-Plus入门学习
  16. 6个高质量插画、插图网站。
  17. STM32-(04):STM32F103VCT6芯片内部资源分析
  18. 【设计模式】 原型模式
  19. IBM待遇完全揭密--工资 级别等(完整版)(2010-09-06 22:14 )
  20. 用 JavaScript 实现寻路算法 —— 编程训练

热门文章

  1. 比较两个listString是否相等
  2. INSTALL_FAILED_VERSION_DOWNGRADE报错
  3. 基于JAVA+Swing+MYSQL的进销存管理系统
  4. 基于JAVA+Spring+MYSQL的家教管理系统
  5. 基于JAVA+SpringMVC+MYSQL的ktv预订管理系统
  6. xpath以某个字符开始_XPATH简单使用
  7. glove中文词向量_《GloVe:Global Vectors for Word Representation》学习
  8. [******] java多线程连续打印abc
  9. 中山大学2018年数学分析高等代数考研试题
  10. Android 源码分析(三) Service 启动分析