C语言——指针

(一)地址与指针的概念:

1.如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。编译系统根据程序定义的变量类型,分配一定长度的空间。例:整型变量2个字节,字符变量一个字节。

2.内存区的每一个字节有一个编号,这就是“地址”。相当于索引号,房间号,房间里面可以存放数据。

3.区分内存单元的地址与内存单元的内容

4.在程序中一般是通过变量名来对内存单元进行存取操作的。其实程序经过编译以后已经将变量名转换为变量地址,对变量值的存取都是通过地址进行的。

5.按变量地址存取变量值的方式称为“直接访问”;将变量i的地址存放到另一个变量中,为“间接访问”。

6.C语言中,将地址形象化地称为“指针”。

7.一个变量的地址称为该变量的“指针”,如果有一个变量专门用来存放另一个变量的指针,则称为“指针变量”。区分指针和指针变量,指针是地址,指针变量是存放地址的变量。

(二)变量的指针和指向变量的指针变量

1.变量的指针,即变量的地址;指针变量,即地址变量

2.因为程序中,使用变量名的时候,实质是操作变量名指向的内容。定义指针变量:int *pointer_1 和int i是同一个意思,需要定义指针变量指向的变量的类型。

3.定义指针;基类型 *指针变量名 ,即指针变量名为地址,存的是头地址,基类型表示占用的字节数,*表示“指向”,“*地址”表示指向该地址的变量。

4.要指针变量指向一个变量,可以赋值语句:pointer_1 = &i; ,取变量的地址存入pointer_1.

5.定义指针变量注意两点:

   (1)指针变量前面的“*”表示该变量的类型为指针型变量。指针变量名为pointer_1 ,而不是*pointer_1.

   (2)在定义指针变量时必须指定基类型。因为每个字节都有一个地址,而指针变量存的是头地址,还要指定占用的字节数。

   (3)只有整型变量的地址才能放到指向整型变量的指针变量中。即类型要保持一致,声明指针变量的时候,要指定该指针用来存放的是何种基类型的地址。

(三)指针变量的引用

1.有两个运算符:

    (1)&:取地址运算符。

    (2)*:指针运算符,(或称间接运算符),取其指向的内容。

例如&a为变量a的地址,*p为指针变量p所指向的存储单元的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值