小话C指针

        指针在c语言中占据着重要地位,指针跟int、char、double等类似,也是一中数据类型,其特殊之处在于int等基本类型变量存放的是内容,指针变量存放的是地址。内存被划分成许多但愿区域,这些单元所在的”单元号“即为地址,指针的定义方式为:

数据类型  *变量名;

Eg:int  *pNum;

其中,*表示pNum是一个指针型变量,int是指针变量的类型,代表它只能指向int型变量。

指针还有个运算符是”&“,名为:取地址符。故名思义,取地址用的,取的就是变量所在的地址。

如:int  a = 0,pN;

pN = &a;

此时就可以通过指针pN间接操作变量a了。

那怎样能操作a的数值呢?这时需要用到取值符“*”,这里的*跟上面的那个*意义不同,上面的*表示这是一个指针变量,而这里*表示取指针变量所指变量的值。

如:int  a,b = 1,*pN;

pN = b;

a = *pN;

此时a的值为1。

指针也可以进行自增或自减运算,由于指针存放的是“单元号”(地址),那当指针自加1后,它指向的就是下一个“单元号”了。

如:int *pN;

int a[3] = {1,2,3};

pN = a;

pN++;

当数组a直接赋值给pN后,pN指向的是数组的首地址,也就是a[0]的地址,当pN++后,pN指向下一个地址,也就是a[1]的地址,自减同理。

需要注意的是,当指针指向数组最后一个元素后,再进行自加运算的话就会发生数组越界的情况,因为所指向的地址未知,所以发生的情况也未知。

小话C指针

时间: 2024-07-28 14:46:41

小话C指针的相关文章

【小话设计模式】面向对象设计原则

1.单一职责原则 单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成.英文缩写SRP  Single Responsibility Principle 单一职责原则-->"高内聚,低耦合",每个类应该只有一个职责,此外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 优点: 可以降低类的复杂度: 提高类的可读性,提高系统的可维护性: 变更引起的风险降低. 2.里氏替换原则 里氏

【小话设计模式】类之间的关系

4.组合(Composition) 定义:相比于聚合,组合是一种耦合度更强的关联关系.存在组合关系的类表示"整体-部分"的关联关系,"整体"负责"部分"的生命周期,他们之间是共生共死的:并且"部分"单独存在时没有任何意义.如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏. 符号:带实心菱形实线箭头表示 1.合成关系是关联关系的一种,是比聚合关系还要强的

小话HTTP Authentication

什么是Authentication? 首先解释两个长的很像.容易混淆的单词,Authentication(鉴定.认证)和Authorization(授权). Authentication就是要证明你是谁.举个例子,你告诉别人你的名字叫Alice,怎么样让别人确信你就是Alice,这就是Authentication. Authorization则是当别人已经相信是你以后,你是不是被允不允许做做某件事儿.比如,当你已经证明了你就是Alice了,你可以查你自己的信用卡刷卡记录,但不能查Bob的刷卡记录

C#软件设计——小话设计模式原则之:开闭原则OCP

前言:这篇继续来看看开闭原则.废话少说,直接入正题. 软件设计原则系列文章索引 C#软件设计——小话设计模式原则之:依赖倒置原则DIP C#软件设计——小话设计模式原则之:单一职责原则SRP C#软件设计——小话设计模式原则之:接口隔离原则ISP C#软件设计——小话设计模式原则之:开闭原则OCP 一.原理介绍 1.官方定义 开闭原则,英文缩写OCP,全称Open Closed Principle. 原始定义:Software entities (classes, modules, functi

小话C源码移植

我们知道国外很多程序员工作在linux / unix 环境下,所以有很多优秀的c/c++语言代码不能直接在windows平台进行编译. 很多时候我们只能使用msys, cmake等工具进行模拟环境编译. 其实有时候不必要. 如某次,偶编译一个纯c代码,搭建了MSYS,Mingw,SWIG,Python等各种环境,结果还是不能顺利编译. 主要里面有一些什么 .spec的文件. 然后自己尝试用 -I . 加其他任何一种编译器,弄个空工程,将c代码加入到工程,编译, OK. 世界清静了,对于有需要Bi

小话术

下面的小话术的第一行都是假设女孩子说的话. 一.切,我才不稀罕.(你向女孩子提供价值的时候) 1,你又不是卫生巾,当然不吸汗:2,物以稀为贵,你不稀罕也就不金贵了. 二.你要不要介绍下你自己?1,性别--男,爱好--女: 2,我姓秦,叫艾德(亲爱的). 三.你接触我什么目的?1,你平时做任何事都一定要有目的吗? 2,交朋友开心就好,我觉得你很友善,所以想跟你交朋友. 四.你不觉得你很2(傻)吗?1,以前有觉得,自从看到你以后,就完全不觉得了,谢谢你: 2,我2,你213(213=2B). 五.说

小言C指针

        指针c语言,占据着重要的地位.终场前int.char.double其他类别似.它是一种数据类型,其特殊的原因int等基本类型的变量存储内容,针变量存放的是地址. 内存被划分成很多但愿区域,这些单元所在的"单元号"即为地址,指针的定义方式为: 数据类型  *变量名. Eg:int  *pNum; 当中.*表示pNum是一个指针型变量.int是指针变量的类型,代表它仅仅能指向int型变量. 指针还有个运算符是"&",名为:取地址符.故名思义.取地

小话设计模式之设计心得

经常看到各个论坛经常有人讨论设计模式,进去一看,基本都是造搬一些设计模式书上的例子.看完之后,往往有一个疑问,他们写完之后在实际工作到底能不能用上呢? 今天闲着无聊,说说自己工作上使用过的心得.欢迎拍砖! 首先,设计模式到底是什么东西? (本来想留最后写,写完发现不知道怎么写了,就不写了) 使用设计模式到底为了什么? (本来想留最后写,写完发现不知道怎么写了,就不写了) 怎么把设计模式应用到工作中去? 这个我觉得最重要的,犹想当年刚开始学习设计模式时,把一本几百页的书看完,里面提到的30左右个设

C++小知识:指针和引用的区别

从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变.    而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的:     指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传