一、数组与指针有什么关系

(1)地址

数组名就是一个地址,指向一个数组的开端。

从实验结果我们可以看出前三个地址都是一样的,都是数组的开始地址,而最后一个是数组的第二个元素,因为是整型数据,地址加4。

那么0[a] 1[a] 2[a]...n[a]又代表了什么

0[a]=a[0] 1[a]=a[1] n[a]=a[n];

为什么会这样呢 对比上方代码可知:

n[a]=*(n+a)     *(n+a)=*(a+n)    *(a+n)=a[n];

#include <stdio.h>
int main() {
int a[] = { ,,,, };
int *p = a+;
printf("%d\n", *p++);
printf("%d\n", *++p);
printf("%d\n", (*p)++);
printf("%d\n", ++(*p)); }

举例指针在数组中的使用:

#include <stdio.h>
int main() {
int *p, a[], i;
p = a;
for (i = ;i < ;i++)
scanf_s("%d", p++);
printf("\n\n");
for (p = &a[];p < a + ;)
printf("%d ", *p++);
return ;
}

#include <stdio.h>
int main()
{
int a[][] = { ,,,,,,,, }, *p;
for (p = a[];p < a[] + ;p++) //p=&a[0][0]
printf("%d", *p);
return ;
}

#include <stdio.h>
int main()
{
int a[][] = { ,,,,,,,,,,, };
int(*p)[];
p = a;
int i, j;
for (i = ;i < ;i++)
{
for (j = ;j < ;j++)
printf("%d", p[i][j]);
printf("\n");
}
return ;
}

#include <stdio.h>
int *fun(int *x, int *y)
{
if (*x < *y)
return x;
else
return y;
}
main()
{
int a = , b = , *p, *q, *r;
p = &a; q = &b;
r = fun(p, q);
printf("%d,%d,%d\n", *p, *q, *r);
}

03关于C的数组指针的更多相关文章

  1. [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组

    程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...

  2. C++语言中数组指针和指针数组彻底分析

    #################################                              ##       基本知识               ##        ...

  3. C语言基础 (9) 数组指针

    复习 只要把地址拿到就能这么操作.. (这里是合法的地址,不是野指针) 只有定义变量后,此变量的地址才是合法的地址 野指针就是保存没有意义地址的指针变量 操作野指针变量本身不会有任何问题 操作野指针所 ...

  4. C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用

    类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...

  5. 问题:C++ 删除数组指针实用 delete []变量 汇编怎么实现的?

    问题:C++ 删除数组指针实用  delete []变量    汇编怎么实现的?

  6. 指针数组 vs 数组指针

        指针数组,故名思义,就是指针的数组,数组的元素是指针:     数组指针,同样,就是直想数组的指针.     简单举例说明:     int *p[2]; 首先声明了一个数组,数组的元素是in ...

  7. c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针

    1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...

  8. C/C++中的指针数组和数组指针

    1. 指针数组 定义:int *p[n],由于[]的优先级高于*,p和[]结合成一个数组,该数组的元素存储的是int类型的指针,由于数组内容是指针,因此p+1的步长是sizeof(int*),在32位 ...

  9. C++中,指针数组和数组指针

    这俩兄弟长得实在太像,以至于经常让人混淆.然而细心领会和甄别就会发现它们大有不同. 前者是指针数组,后者是指向数组的指针.更详细地说. 前: 指针数组;是一个元素全为指针的数组. 后: 数组指针;可以 ...

随机推荐

  1. 关于vivado implement后clock interaction报告的理解(更新中)

    对于较大工程很难避免遇到CDC问题,vivado自带的分析工具可以报告跨时钟状态. 详情参看手册UG906-Design Analysis and Closure Techniques. (1)关于p ...

  2. L1-056 猜数字

    一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢.本题就要求你找出其中的赢家. 输入格式: 输入在第一行给出一个正整数N(≤10​4​​).随后 N 行,每行给出一个玩 ...

  3. Linux分区和挂载的理解

    在工作中经常使用到Linux,对分区和挂载的概念一直都很模糊,对网上的信息进行了整理,方便理解. 1为什么要分区(需理解硬盘的组成) 1)数据的安全性,因为每个分区的数据是分开的.所以,当你需要将某个 ...

  4. MySQL存储过程错误No data - zero rows fetched, selected, or processed

    原因:游标没有获取到任何内容! 解决方案 : 声明一个 continue handler declare continue handler for not found set V_NotFound = ...

  5. Bootstrap中模态框多层嵌套时滚动条问题

    在使用Bootstrap中模态框过程中,如果出现多层嵌套的时候,如打开模态框A,然后在A中打开模态框B,在关闭B之后,如果A的内容比较多,滚动条会消失,而变为Body的滚动条,这是由于模态框自带的遮罩 ...

  6. pytest的fixture和conftest

    解决问题:用例1需要先登录,用例2不需要登录,用例3需要先登录.很显然这就无法用setup和teardown来实现了,这个时候就可以自定义测试用例的预置条件,比setup灵活很多. 1.fixture ...

  7. 最长可重区间集 spfa费用流

    给定实直线L上的n个开区间,和一个正整数k 选取若干个区间,在保证实直线L上的任意一个点最多被选出区间覆盖k次的情况下,使得这些区间的长度和最大 先把区间按照左端点排序, 考虑到重复其实就代表着相交, ...

  8. c++函数参数类型-引用、指针、值

    c++函数参数类型-引用.指针.值 https://www.cnblogs.com/lidabo/archive/2012/05/30/2525837.html

  9. git命令收集(记得持续更新)

    这里收集了一些常用的git命令: git remote add origin git@192.168.1.128:sabo/ycdd-server.git git push -u origin mas ...

  10. Implementing a CNN for Text Classification in TensorFlow

    参考: 1.Understanding Convolutional Neural Networks for NLP 2.Implementing a CNN for Text Classificati ...