c语言指针与数组

C语言数组、指针与编程技巧 C语言数组 C语言数组指针与编程技巧 C语言数组指针 立即下载
//
//  main.c
//  c指针
//
//  Created by stevenchang on 9/4/15.
//  Copyright (c) 2015 cz. All rights reserved.
//

#include <stdio.h>

void printfArray(int array[]);   //声明一个函数,用于打印数组元素

int main(int argc, const char * argv[]) {
    /**
     1.指针与数组
        只需要记得指针永远是指向地址的,不指向地址所在的存储空间。
        只要通过指针得到地址,我们就可以改变指针的地址和通过地址来操作存储空间的值。
     */
    int a[] = {2,3,4,5,6};   //初始化一个int类型的数组
    int *p;     //定义一个指针
    p = a;    //将指针p,指向数组a;  数组名就是数组的首地址
    printf("%d\n",*p);     //这里打印出来的值为2,即数组的首元素
    printf("%d\n", *(p+1));    //通过指针p来获取数组a[1]中的值
    printf("%d\n", p[1]);     //通过指针p来获取数组a[1]中的值
    
    printf("===========遍历=============\n");
    //使用指针遍历数组
    for (int i = 0; i < 5; i++) {
        /**
         指针变量p+1不是简单的数字相加,而是内存地址的相加
            int *p;
            p + 1 :地址值+4;
            double *dp; dp + 2:地址值加2*8
         因此,指针变量p+i,相加的值是根据i的数据类型(int/folat/double...)*i
         */
//        printf("a[%d]=%d\n", i, *(p+i));
        
        printf("%d\n",p[i]);   //这也是一种指针的表达方式
    }
    
    //打印数组元素
    printfArray(a);
    
    return 0;
}

/**
 用于打印数组元素
 */
void printfArray(int *array) {
    //我们可以看到C语言中传递的数组,都将会被转成指针来进行传递,因此,sizeof(array)==8
    //指针类型的sizeof()==8
    //当参数类型改为int *array时,没有警告
    printf("=====%zd\n",sizeof(array));
    for (int i = 0; i < 5; i++) {
//        printf("array[%d]=%d\n",i, *(array+i));
        printf("array[%d]=%d\n",i , array[i]);
    }
}
指针:永远指向的是一个地址,我们可以通过此地址来操控存储空间的值。
     指针指向数组时,指向的是数组的首地址,通过首地址可以操作数组;
     通过上面的例子,我们可以看到,当指针指向一个数组时,指针和数组是可以互换使用的。
云安全技术——搭建VPN VPN(Virtual Private Network)是一种可以在公共网络上建立安全连接的技术。VPN是实现保密通信的基本手段,在windows系统上,可以直接进行VPN服务的搭建。1.VPN的工作原理:通过使用加密协议和认证机制,将本地计算机和远程服务器之间的通信加密和保护。2.VPN的分类:根据不同的方式和用途,VPN可以分为不同类型,例如远程访问VPN、站点到站点VPN等。3.VPN的优势:VPN可以带来许多好处,如提高数据安全性、隐藏真实IP地址、突破地理限制等。4. 阅读详情

相关推荐

【XR技术介绍】深度解析|AI眼镜核心技术架构:从硬件层到端云AI全链路拆解

本文将逐层拆解AI眼镜完整技术架构,梳理硬件、感知、光学、端侧AI、软件云端五大核心层级,剖析核心数据流与行业技术瓶颈,同时附上标准化技术架构图,适合技术学习、方案汇报、行业科普使用。

houdou112358的博客 433

C语言学习与总结---第六章:数组(Array)

数组(Array)6.1 一维数组6.1.1 一维数组的定义6.1.2 一维数组在内存中的存放6.1.3 一位数组的引用6.1.4 一位数组的初始化6.2 二维数组6.2.1 二维数组的定义6.2.2 二维数组在内存中的存放6.2.3 二维数组的引用6.2.4 二维数组的初始化6.3 字符数组6.3.1 字符数组的定义6.3.2 字符数组的初始化6.3.3 二维字符数组6.3.4 字符串和字符串结束标志6.3.5 字符数组的输入输出6.3.6 字符串处理函数6.4 程序应用 数组:一组具有相同数据类型的数据

Moonlight2020的博客 3549

CTS实战:如何用set_sense优化时钟树平衡(附ICC2避坑指南)

本文深入探讨了在时钟树综合(CTS)中,如何正确使用`set_sense`命令优化时钟树平衡,并对比了其与`set_disable_timing`的本质区别。通过实战案例详细解析了`-stop_propagation`和`-clock_leaf`参数的应用场景,并提供了ICC2工具中的关键避坑指南,帮助后端工程师精准控制时钟拓扑,避免时序分析漏洞。

weixin_28933797的博客 459

C语言基础-数组篇

数组篇 一、为什么需要数组: 只要大量数据不关心数组名的时侯 二、数组的基本使用: 1.定义数组: int array[100]; //定义一个能放置100个数据的数组,没有赋值 int array[3]={1,2,3}; //有初始化的数组,完整初始化,该数组申请了三个整型内存空间,并赋值1,2,3; int array[100]={1,2,3}; //有初始化的数组,不完整初始化,该数组申请了100个整型内存空间,但是只是赋值了3个数放在了前三个位置。 2.给数组赋值: for(int i =1;

weixin_44278698的博客 3724

Python读取Matlab v7.3数据

文章目录Matlab保存数据Python读取 v7.3 Mat Matlab保存数据 在matlab设置中,常规->MAT文件,选择MATLAB版本7.3或更高版本保存数据。 注意保存数据的文件名为 corre.mat,保存的数据数组为data; 后面python的读取中会用到这两个参数 Python读取 v7.3 Mat 先安装hdf5storage库,再使用以下代码,就可以读取到mat中的数据,注意 import hdf5storage import numpy as np dataDi

weixin_43121914的博客 1081

谷歌倾斜摄影数据获取以及转换3DTiles介绍

解析谷歌倾斜模型数据,再一键设置无人值守的情况下,快速将谷歌倾斜摄影模型数据转成3DTiles数据,并在Cesium上进行流畅漫游缩放显示,效果优于官方3DTiiles格式数据

cyber_room的博客 5335

C语言 -数组Array

核心想法:Array 数组的作用就是查表 数组的属性 主要属性: 类型属性:里面装什么类型 大小属性 :数组有多大呢 隐藏属性: 连续存放:索引从0开始 定义数组时 括号内一定是 正数 整形 常量 ! 只具有只读性 只读性的理解: int array1[10]; #define SIZE 10 int array2[SIZE]; const int si...

AKUANer的博客 5496

【多元统计分析】均值向量和协方差阵的检验——spss上机实验

均值向量和协方差阵的检验——spss上机实验 #参考书目为《多元统计分析》(第五版)——何晓群.中国人民大学出版社 #如有错误,请指正!谢谢~ #关注公众号搜索同名文章获取数据~ 习题2.3 现选取内蒙古、广西、贵州、云南、西藏、宁夏、新疆、甘肃和青海等9个内陆边远省区。选取人均GDP、第三产业比重、人均消费支出、人口自然增长率及文盲半文盲人口占15岁以上人口的比例等5项能较好的说明各地区社会经济发展水平的指标,验证边远及少数民族聚居区的社会经济发展水平与全国平均水平间有无显著差异。 将输入导入spss

suansuannainaizi的博客 3万+

C语言提高-36讲: 指针数组和数组指针的使用

数组指针 指向二维数组元素的指针,一个地址,你需要的,只是这一个数组里面的各个元素 指向一维数组的指针,多个地址,在使用二维数组时,一直访问到每行指定长度为止 指针数组 保存多个地址的时候,能表示多个数组 指针数组就是数组的内容为指针 可以指向某一行的数组    Q: 输出某一行整体元素可以用到指针数组,也可以用到数组指针    如,用指针数组输出字符串数组(可不可以

Osseyda's Nation 774

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 568

PyTorch深度学习实战(36)——Pix2Pix详解与实现

Pix2Pix 是基于生成对抗网络的图像转换框架,能够将输入图像转换为与之对应的输出图像,能够广泛用于图像到图像转换的任务,如风格转换、图像修复、语义标签到图像的转换等。Pix2Pix 的核心思想是通过对抗训练将输入图像和目标输出图像进行配对,使生成网络可以学习到输入图像到输出图像的映射关系。在本节中,将学习使用 Pix2Pix 根据给定轮廓生成图像。

盼小辉丶的博客 1万+

c语言之——指针数组与数组指针

一、指针数组和数组指针的定义 1. 指针数组:是指一个数组里面装着指针,也即指针数组是一个数组; 定义形式:int *a[10]; 如图所示: 2. 数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已; 定义形式:int (*p)[10]; 其中,由于[]的优先级高于*,所以必须添加(*p). 区分方法: 主要看后面的两个字是什么(前面是修饰作用),因此指针数组是数组,而数组指针是指针。 二、指针数组和数组指针的使用 ref: https://...

wwwlyj123321的博客 1万+

RDKit | 基于Murcko骨架聚类化合物库

化合物多样性评估 一种方法是使用合适的指纹技术将化合物矢量化并评估他们之间的距离。这种方法经常被使用,但是对于人类很难直观地理解化合物之间的距离。 基于Murcko骨架,分子大致聚集在化合物骨架中,并且每个簇中的顶部化合物都作为候选化合物。此方法非常符合人类的直觉,因此可以预期人将通过查看候选化合物列表来自动缩小化合物的范围。 Murcko骨架 Mur...

DrugOne 3766

C语言数组之指针数组和数组指针

指针数组指针数组指针数组

weixin_34481217的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C语言指针数组和数组指针详解

C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS2019编写简单的C程序示例 简单示例,VS2019调试C语言程序 C语言基础-基本算法 C语言基础-数据类型 C语言中的输入输出函数 C语言流程控制语句 C语言数组——一维数组 C语言数组——二维数组 C语言数组——字符数组 C语言中常用的6个字符串处理函

专注于C语言编程干货分享 5674

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C语言——指针和数组

理解指针的含义;掌握数组的使用;理解指针和数组的联系

Li27的博客 4900

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言——指针(字符指针、指针数组、数组指针、数组参数、指针参数)

我们从第一个和第三个结果可以看出p与arr所储存的地址是一样的,都是数组首元素的地址,但当我们仔细分别观察第1,2个结果与第3,4个结果会发现,,当我们给arr+1后会跳过一个整型的内容,但给p+1时发现跳过了10个整型的内容,刚好就是数组arr的内容,这就让我们更加确信,虽然数组指针p与arr都储存了数组中首元素的地址,但数组指针p指向的是整个数组的内容,它们的意义截然不同。我们创建了两个数组,因此会开辟两处不同的空间,数组名是首元素的地址,故str1!比如下面的代码,如何设计形参接收呢?

shadoubuhuijiji的博客 3188

C语言 指针与数组

一、指针与数组 二、数组参数、指针参数 三、指针与函数 (了解) 四、指针与数组的笔试题 五、指针笔试题

lfm1010123的博客 2669

C语言指针与数组详解

指针与数组是 C 语言中很重要的两个概念,它们之间有着密切的关系,利用这种 关系,可以增强处理数组的灵活性,加快运行速度,本文着重讨论指针与数组之 间的联系及在编程中的应用。 1.指针与数组的关系 当一个指针变量被初始化成数组名时,就说该指针变量指向了数组。如: char str[20], *ptr; ptr=str; ptr 被置为数组 str 的第一个元素的地址,因为数组名就是该数组的首地址,...

chenguijia的博客 6857

C语言之指针数组

C语言之指针数组 一.指针数组 1.简介 简介:本质是一个数组,但是里面存放的数据都是指针,即数组元素都是指针。它是 “存储指针的数组”的简称。 2.内容格式 数据类型 * 数组名[元素个数]; 例如: int a[4]; “[]“的优先级比我们的”"的优先级高,所以[]与我们的4先结合,形成了我们的数组的定义, 数组名叫做a,我们平时定义数组的格式如下: int b[10]; ------>数组名b ------>数组里面元素的类型 int 类型 而指针数组 a int * a[10];

Danny_llp的博客 2656

C语言数组指针

arr 本身就是一个指针,可以直接赋值给指针变量 p。arr 是数组第 0 个元素的地址,所以;也可以写作。也就是说,arr、p、&arr[0] 这三种写法都是等价的,它们都指向数组第 0 个元素,或者说指向数组的开头。再强调一遍,“arr 本身就是一个指针”这种表述并不准确,严格来说应该是“arr 被转换成了一个指针”。如果一个指针指向了数组,我们就称它为数组指针(Array Pointer)对指针变量进行加法和减法运算时,是根据数据类型的长度来计算的。

AnChenliang_1002的博客 5459

c语言中数组与指针的关系

/来源网络,仅限个人学习记录适用/ 指针与数组是C语言中很重要的两个概念,它们之间有着密切的关系,利用这种关系,可以增强处理数组的灵活性,加快运行速度,本文着重讨论指针与数组之间的联系及在编程中的应用。   1.指针与数组的关系   当一个指针变量被初始化成数组名时,就说该指针变量指向了数组。 如:   char str[20], *ptr;   ptr=str;   ptr被置为数组str的第一个元素的地址,因为数组名就是该数组的首地址,也是数组第一个元素的地址。此时可以认为指针ptr就是数组str(反之

hh_buddy的博客 4652

C 语言指针与数组的深度解析

指针是一个变量,它存储了另一个变量的地址。在 C 语言中,可以使用指针类型来声明指针变量。例如,int *ptr;声明了一个指向整数类型的指针变量ptr。指针变量可以通过取地址运算符来获取其他变量的地址,并将其存储在指针变量中。例如,ptr = &var;将变量var的地址存储在指针变量ptr中。数组是一组相同类型的元素的集合,它们在内存中连续存储。在 C 语言中,可以使用数组类型来声明数组变量。例如,声明了一个包含 10 个整数元素的数组变量arr。

千千道的博客 1851

C语言:指针与数组

如果 p 指向 a[i],q 指向 a[j],那么 p - q 就等于 i - j。C 语言中指针和数组的关系非常紧密,理解指针和数组之间的关系对于熟练掌握 C 语言非常关键。指针的算术运算是数组和指针关联的一种方式,但这不是两者之间唯一的关联。虽然可以把数组名当作指针,但是不能给数组名赋新的值,也就是说数组名是一个常量指针。既然传递数组时,只是传递一个指针,那么就可以把数组类型的形式参数声明为指针类型。函数时,会把指向数组 b 第一个元素的指针赋值给 a,数组本身并没有复制。但是,通过对指针 p 执行。

caijirui_rui的博客 1005

C语言 数组指针 (数组指针)(指针数组)

【摘要】本文重点讲解了C语言中指针与数组的关系及应用。主要内容包括:1)数组名本质是指向首元素的指针;2)指针的算术运算规则及其在数组遍历中的应用;3)指针与数组互操作的四种方法;4)数组指针与指针数组的区别。通过实例演示了指针法实现数组反转的两种实现方式(下标法和指针法),并分析了不同访问方式的效率差异。文章强调指针运算必须在同一数组范围内进行,且要注意指针移动与取值操作的先后顺序。最后区分了指针变量指向数组元素与数组指针的概念差异,为理解指针与数组的复杂关系提供了清晰的指导。

2301_79457988的博客 1286

C语言中数组与指针的区别

本文是对《C语言深度剖析》一书内容的拓展,在看这本书的时候解了很多我之前的一些困惑,故在此记录。对数组的引用总是可以写成对指针的引用,而且确实存在一种指针和数组的定义完全相同的上下文环境。 但是指针和数组还是在本质上是不一样的。指针就是指针,指针变量在32位的系统下面是4Byte,而在64位系统下面是8Byte,其值为某一个内存的地址。而数组就是数组,其大小与元素的类型和个数有关,定义数组时必须...

iva_brother的博客 9388
上一篇: c语言指针基本使用
下一篇: c语言字符串与指针
StevenLoveMaggie
博客等级 码龄16年 10粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值