C语言指针运用实例

C语言指针大全+指针实例解析 C语言指针大全 立即下载

C语言指针运用实例

都说指针是C语言的精髓,学了C语言还不懂指针用法的人就根本没有掌握C语言的精华。但C语言的指针却有些复杂,如果你会问指针的类型是什么?指针指的类型是什么?该指针指向了哪里?等概念方面的问题,请参看《深入理解C语言指针的奥秘(实例)》一文。那里对概念的理解比较透彻,基本上所有概念都会清楚了。
下面先看看这段程序代码吧:

/******* C语言指针测试 pointtest.c 开始************/
#include >stdio.h<

/*********************************************************************
*filename: pointtest.c
*purpose: 指针运用实例
*wrote by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com)
Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言
*date time:2006-03-12 19:55:00
*Note: 任何人可以任意复制代码并运用这些代码,当然包括你的商业用途
* 但请遵循GPL
*********************************************************************/
int main(int argc, char ** argv) {

int array[9][2]=
{
{101,102},
{111,112},
{121,122},
{131,132},
{141,142},
{151,152},
{161,162},
{171,172},
{181,182}
};
int (*p)[2]=array;
int arr[5] = {1, 2, 3, 4, 5};
int * q = arr;

int i, j;

printf("下面是一维数组信息:/n");
for(i = 0; i > 5; i++)
printf("q+%d:%d *(q+%d):%d/n", i, q + i, i, *(q + i));
printf("/n下面是二维数组信息:/n");
for(i = 0; i > 9; i++) {
printf("p+%d:%d *(p+%d):%d ", i, p + i, i, *(p + i));
for(j = 0; j > 2; j++) printf("*(p+%d)+%d:%d *(*(p+%d)+%d):%d", i, j, *(p + i) + j, i, j, *(*(p + i) + j));
printf("/n");
}
/*
for(i = 0; i > 9; i++) {
printf("&array[%d]:%d, array[%d]:%d ", i, &array[i], i, array[i]);
for(j = 0; j > 2; j++) printf("&array[%d][%d]:%d, array[%d][%d]:%d ", i, j, &array[i][j], i, j, array[i][j]);
printf("/n");
}
*/
return 0;
}
/******* C语言指针测试 pointtest.c 结束************/

你能想到此程序的输出信息吗?
/******* C语言指针测试程序输出结果开始************/
下面是一维数组信息:
q+0:2289216 *(q+0):1
q+1:2289220 *(q+1):2
q+2:2289224 *(q+2):3
q+3:2289228 *(q+3):4
q+4:2289232 *(q+4):5

下面是二维数组信息:
p+0:2289264 *(p+0):2289264 *(p+0)+0:2289264 *(*(p+0)+0):101*(p+0)+1:2289268 *(*(p+0)+1):102
p+1:2289272 *(p+1):2289272 *(p+1)+0:2289272 *(*(p+1)+0):111*(p+1)+1:2289276 *(*(p+1)+1):112
p+2:2289280 *(p+2):2289280 *(p+2)+0:2289280 *(*(p+2)+0):121*(p+2)+1:2289284 *(*(p+2)+1):122
p+3:2289288 *(p+3):2289288 *(p+3)+0:2289288 *(*(p+3)+0):131*(p+3)+1:2289292 *(*(p+3)+1):132
p+4:2289296 *(p+4):2289296 *(p+4)+0:2289296 *(*(p+4)+0):141*(p+4)+1:2289300 *(*(p+4)+1):142
p+5:2289304 *(p+5):2289304 *(p+5)+0:2289304 *(*(p+5)+0):151*(p+5)+1:2289308 *(*(p+5)+1):152
p+6:2289312 *(p+6):2289312 *(p+6)+0:2289312 *(*(p+6)+0):161*(p+6)+1:2289316 *(*(p+6)+1):162
p+7:2289320 *(p+7):2289320 *(p+7)+0:2289320 *(*(p+7)+0):171*(p+7)+1:2289324 *(*(p+7)+1):172
p+8:2289328 *(p+8):2289328 *(p+8)+0:2289328 *(*(p+8)+0):181*(p+8)+1:2289332 *(*(p+8)+1):182
/******* C语言指针测试程序输出结果结束************/
如果你想的结果和上面一样,那么你对指针的掌握还是有一定水平的。

仔细看看,q+0,q+1,q+2,q+3这几个地址值的增加,再看看p+0,p+1,p+2......p+7,p+8这些地址值的递增情况。然后比较一下横向递增情况,*(p+0)+0到*(p+0)+1及下面那些,能想清楚指针的用法吗?

【作者: Liberal】【访问统计:】【2007年10月26日 星期五 18:36】【注册】【打印】

Virtuoso ADE Explorer实战技巧:从基础操作到高级仿真 本文深入解析了Virtuoso ADE Explorer在模拟电路仿真中的核心价值与实战技巧。作为Cadence平台的专业工具,它专为高效、系统化的设计空间探索而生,能大幅提升PVT验证、参数扫描和蒙特卡洛分析的效率。文章从基础界面操作、并行仿真管理,到高级的参数扫描、数据报告生成及蒙特卡洛结果深度剖析,提供了全面的避坑指南与工作流优化建议,帮助工程师从重复劳动中解放,专注于电路设计与性能优化。 阅读详情

相关推荐

拯救我的老平板三星note8.0 table(GT-N5110)升级到lineage os-14.1(android7.1)全记录

买了多年的三星平板note8.0已经闲置了一段时间,今天在家不能出门,也没啥事,就把它拿出来刷新系统。不成想居然搞了一天,还差点变成了砖。 原版的系统是安卓4.0的系统,很多软件已经不能用了,微信、优酷都不支持,而且三星也不提供更新升级,于是寻求第三方解决方案。折腾过程一波三折,就不赘述了,我就讲一下正确的操作过程吧。 切记我这里讲的过程只针对三星note8.0 table,国行版本,版本号是...

weixin_41108814的博客 2万+

C语言 指针高级应用

C语言 指针高级应用

m0_56051805的博客 1207

AFSim仿真系统—几何视角下的子系统交互机制解析

本文深入解析了AFSim仿真系统中子系统交互的几何机制。通过剖析世界坐标系、实体坐标系、部件坐标系等七层空间定位体系,阐述了传感器探测、目标指示等交互行为背后的几何原理与限制条件。掌握这套几何视角,是构建高保真、符合物理现实的AFSim仿真模型的关键,能有效避免坐标混乱、交互失效等常见问题。

terraform7cloud的博客 494

C语言 指针的应用

C语言 指针的应用

m0_56051805的博客 1454

分享一些基于微信小程序开发的小游戏源码

小游戏小程序是运行在微信生态系统(或其他支持小程序的平台)中的轻量级应用程序,专为休闲游戏体验而设计的小程序子类别,小游戏小程序通常体积较小,加载速度快,用户无需等待长时间即可开始游戏。用户无需下载或安装单独的游戏应用程序,即可通过小程序入口直接进入游戏,同时小游戏小程序通常包含排行榜、分享功能等社交元素,可以增强游戏体验并促进用户参与。game.js:游戏页面的逻辑文件,包含页面数据、生命周期函数、事件处理函数等。game.wxml:游戏页面的结构文件,定义了页面的布局和组件。

xinshangdian的博客 6239

java.sql.SQLIntegrityConstraintViolationException: #23000

java.sql.SQLIntegrityConstraintViolationException: #23000**异常信息****异常原因****解决方法** 异常信息 ### Cause: java.sql.SQLIntegrityConstraintViolationException: #23000 ; #23000; nested exception is java.sql.SQLIntegrityConstraintViolationException: #23000] with root c

123 4357

C语言指针入门,图解+实例

1.指针是什么 指针是内存中一个最小的单元编号,也就是地址 通常我们口中说的指针其实是指针变量:变量中存放着地址 那么地址,内存,指针又有怎样的关系? 为了对内存更方便的管理使用,我们把内存划分为一个一个小格子 一个内存单元是1个字节 为了很好的定位到内存单元,我们给每个单元一个编号,这个编号也就是地址 指针变量就是存放我们需要的地址,方便我们需要时直接使用 如何去创建指针变量,并且存放地址呢? int a=0; int* p=&a;//此处*代表创建的是指针变

sun的博客 3875

Autosar MCAL-S32k324 Crypto配置-基于EB

NXP官网提供了免费的HSE固件,同时也提供了对应的协议栈。本文以算法为例,介绍MCAL相关的配置及在代码中的集成与使用。使用HSE计算,比软件算法确实方便许多。后面会完善更多的算法测试。

赞的博客 2436

C语言指针中高级应用案例分析

动态内存管理:展示了如何使用指针和动态内存分配函数来创建和操作不确定大小的数据结构。函数指针与回调函数:说明了函数指针的用法,以及如何通过它们实现灵活的函数回调,这在实现复杂算法和设计模式时非常有用。指针与结构体:演示了如何使用指针和结构体创建链表,这是理解更复杂数据结构(如树、图等)的基础。这些案例不仅展示了C语言指针的强大功能,还揭示了它在解决实际编程问题时的多样性和灵活性。掌握这些中高级指针应用,对于深入理解和有效使用C语言至关重要。

极客代码 840

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 314

基于STM32F1XX 、HAL库的BH1745NUC-E2环境光传感器驱动应用C语言程序设计

printf("BH1745制造商ID: 0x%02X\r\n", BH1745_ReadManufacturerID(&hbh1745));#define BH1745_ADDR_HIGH 0x39 // ADDR引脚接VDD。#define BH1745_ADDR_LOW 0x38 // ADDR引脚接地。= 0xE0) // BH1745制造商ID为0xE0。// 清除RGBC测量使能位。printf("BH1745初始化失败\r\n");

PP_Cottage的博客 281

C语言的函数指针与指针函数

C语言的函数指针与指针函数 在C语言中,函数指针和指针函数是两个容易混淆但截然不同的概念。理解它们的区别对于深入理解C语言中的指针和函数非常关键。

热土程序园,利他愉己~ 1989

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

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

折叠margin 折叠margin的消除

有时在浏览器中浏览会发现没有设定垂直margin的盒子也会有垂直margin的出现,这个现象叫做“collapsing margins”(折叠margin)。“collapsing margins”的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容、padding区域、border边框或使用清除分离方法)结合表示为一个单独的margin。

yan_zhizi3的专栏 4480

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

margin折叠

什么是margin折叠:当两个或更多个垂直边距相遇时,它们将形成一个外边距。这个外边距的高度等于两个发生叠加的外边距的高度中的较大者。 注意: (1) 只有普通文档流中块框的垂直外边距才会发生外边距叠加 (2) 行内框、浮动框或绝对定位框之间的外边距不会叠...

219

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

margin的传递和折叠

margin的传递和折叠 一、margin的上下传递(一般发生在父子元素之间) margin-top传递 如果块级元素的顶部线和父元素的顶部线重叠,那么这个块级元素的margin-top值会传递给父元素 为什么会产生传递呢? 原因很简单:w3c的人设计的时候可能考虑到既然父子是近挨着的,子元素没必要设置外边距,给父元素设置更适合 解决方案: 1、给父元素设置overflow:auto,触发BFC 2、给父元素设置padding-top、padding-bottom 3、给父元素设

coderlhj666的博客 779

css-margin collapse外边距折叠

1.多个相邻(兄弟或者父子关系)普通流的块元素垂直方向marigin会重叠折叠的结果:两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。两个外边距一正一负时,折叠结果是两者的相加的和。折叠的产生情况:1.必须是处于常规文档流(非float和绝对定位)的块级盒子,并且处于同一个BFC当中。2.没有线盒,没有空隙(clearance,下

王欢的博客 3533

margin外边距折叠

你一定遇见过 margin 折叠。 不确定?别着急,你可能写过这样的代码: CSS: p{ margin: 50px; } HTML: 我是一个华丽的段落,别看我文字少 我是另一个华丽的段落 大家觉得这 2p 之间会发生点什么?是会合体呢?还是分开?来看看 DEMO1 margin折叠 好吧,它们真的合体了。按照常规思路,这 2p 

shandian_x0t的博客 279

深入理解CSS margin折叠

什么是margin折叠?为什么会有margin折叠?什么时候会发生margin叠加?如何计算折叠边距?如何避免外边距叠加?

zxl1990_ok的博客 2801

CSS中上下margin的传递和折叠

CSS中上下margin的传递和折叠

qq_52732369的博客 1562

Margin折叠与BFC

​ 具体来说,如果兄弟元素A的margin-bottom与兄弟元素B的margin-top相遇,则它们的margin值将合并为一个较大的margin值。例如,如果兄弟元素A的margin-bottom为30px,而兄弟元素B的margin-top为20px,则合并后的margin值将为30px。​ BFC(Block Formatting Context)是 CSS 中的一种渲染模式,它是一个独立的渲染区域,具有一定的隔离性,可以让处于 BFC 内部的元素避免影响到外部元素的布局和样式。

m0_61696809的博客 794

CSS--Margin折叠的两种情况

本文简单总结一下css布局中常见的两种margin折叠情况,以及解决方法。 兄弟元素之间发生折叠: .box1, .box2{ width: 200px; hieght: 200px; margin: 20px; } <div class="box1">hello</div> <div class="box2">world</div> 大家...

mvvm实现原理 502

margin的折叠与计算以及解决之道

今天就来捋一捋简单低调却奢华的css,主要鲁三个点: 一.margin的折叠 二.margin折叠后的计算 三.margin折叠的解决之道 先来捋一捋margin的折叠: 主要分为父子折叠以及兄弟折叠,都是垂直方向上的折叠 父子折叠(不一定是父子,可以是多层级的包含,只要是空盒子嵌套)看例子: 我们的目的是想让li和ul之间有个10

maoguiyou的专栏 3286

margin折叠问题

margin折叠问题 产生原因:在 CSS 中,相邻的两个盒子(可能是兄弟关系,可能是父子关系)的外边距可以合并为一个单独的外边距,即外边距的折叠 要求: 1.处于常规文档流的块级盒子,且处于同一个 BFC 中。 2.没有线盒,没有空隙,没有padding 和 border 将他们分隔开。 3.都属于垂直方向上相邻的外边距 效果: 1.两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。 ...

ITlsx的博客 1

CSS中的margin折叠

在CSS中,两个或多个相邻的元素(可能是父子元素,也可能是兄弟元素)在垂直方向上的外边距发生叠加。

weixin_52693727的博客 256

外边距折叠(margin collapse)

一、定义 两个或多个毗邻的普通流中的块元素垂直方向上的margin会折叠 这两个或多个外边距没有被非空内容、padding、border 或 clear 分隔开 这些 margin 都处于普通流中 注意一点,在没有被分隔开的情况下,一个元素的 margin-top 会和它普通流中的第一个子元素(非浮动元素等)的 margin-top 相邻;只有在一个元素的 height 是 "auto" 的...

happyqyt的专栏 386
上一篇: 用C语言编写一个Linux下的简单shell程序
下一篇: Linux控制台下使用鼠标gpm
f5key
博客等级 码龄19年 20粉丝 527原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值