03关于C的数组指针
一、数组与指针有什么关系
(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的数组指针的更多相关文章
- [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组
程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...
- C++语言中数组指针和指针数组彻底分析
################################# ## 基本知识 ## ...
- C语言基础 (9) 数组指针
复习 只要把地址拿到就能这么操作.. (这里是合法的地址,不是野指针) 只有定义变量后,此变量的地址才是合法的地址 野指针就是保存没有意义地址的指针变量 操作野指针变量本身不会有任何问题 操作野指针所 ...
- C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
- 问题:C++ 删除数组指针实用 delete []变量 汇编怎么实现的?
问题:C++ 删除数组指针实用 delete []变量 汇编怎么实现的?
- 指针数组 vs 数组指针
指针数组,故名思义,就是指针的数组,数组的元素是指针: 数组指针,同样,就是直想数组的指针. 简单举例说明: int *p[2]; 首先声明了一个数组,数组的元素是in ...
- c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针
1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...
- C/C++中的指针数组和数组指针
1. 指针数组 定义:int *p[n],由于[]的优先级高于*,p和[]结合成一个数组,该数组的元素存储的是int类型的指针,由于数组内容是指针,因此p+1的步长是sizeof(int*),在32位 ...
- C++中,指针数组和数组指针
这俩兄弟长得实在太像,以至于经常让人混淆.然而细心领会和甄别就会发现它们大有不同. 前者是指针数组,后者是指向数组的指针.更详细地说. 前: 指针数组;是一个元素全为指针的数组. 后: 数组指针;可以 ...
随机推荐
- jsch上传文件到服务器
需求就是上传文件到服务器,服务器的存储地址由程序决定然后可以自动创建. 使用第三方:jsch JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文 ...
- STA/LTA方法
STA是用于捕捉地震信号的时间窗,因此STA越短,就对短周期的地震信号捕捉越有效:LTA是用于衡量时间窗内的平均噪声,STA/LTA就可以根据周围环境噪声程度自适应地调整其对于某一类型地震信号的敏感度 ...
- 关于urls 的基础
1 普通正则 2 分组正则 url(r'/blog/(\d+)/(\d+)',views.blog) blog(request,arq1,arq2) 按照位置传参 3 分组命名 url(r'/ ...
- Vue 项目架构设计与工程化实践
来源 文中会讲述我从0~1搭建一个前后端分离的vue项目详细过程 Feature: 一套很实用的架构设计 通过 cli 工具生成新项目 通过 cli 工具初始化配置文件 编译源码与自动上传CDN Mo ...
- scrapy-CrawlSpider的rules使用规则
1.allow设置规则的方法:要能够限制在我们想要的url上面.不要跟其他的url产生相同的正则表达式即可: 2.什么情况下使用follow:如果在爬取页面的时候,需要将满足当前条件的url再进行跟进 ...
- JAVA自动补全代码
打开eclipse(对myeclipse同样适用) 找到窗口(windows)菜单,打开最后一项首选项(Preferences)找到下属菜单java打开,打开里边的编辑器(Editor)菜单,点击内容 ...
- FZU 2272 Frog 第八届福建省赛 (鸡兔同笼水题)
Problem Description Therearex frogs and y chicken in a garden. Kim found there are n heads and m leg ...
- phpcms pc_base::load
//数据库pc_base::load_model(‘*_model’) 加载数据库模型 (一张表对应一个数据库模型类),即 modle/*_model.class.php每一个数据库模型类都会继承底层 ...
- 微软Power BI 每月功能更新系列——8月Power BI 新功能学习
Power BI Desktop 8月新功能摘要 Power BI 产品八月发布的新版本又刷新了大家所期待的一些功能,它可以更方便的解决我们从用户那里听到的一些最重要的请求:其中最令人兴奋的是我们的导 ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - EhCache
文章目录 1. EhCache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 EhCache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门 ...