【C语言学习笔记】--指针与地址

      机器的存储器通常由连续编号的存储单元序列组成,这些存储单元可以以单个或者相连成组的方式操纵;通常情况下,一个字节可以表示一个字符,一对相连的存储单元可以表示一个短整数,而四个相邻的字节则构成一个长整数;指针是能存放一个地址的一组存储单元,从本质上讲,指针是一个变量,而它的变量值是所指向对象(可以是变量、数组、结构、函数等)的地址;指针一般占四个字节长度的存储单元,所以sizeof(p)(p是指针)的值为4.

 

 

     一、指针的声明

          int *pointer;

          该语句将创建一个指向int型的指针变量pointer但为对它进行初始化,不初始化指针是很危险的,因为它往往指向的是不确定的地方;所以总是应该在声明指针的时候就对它进行初始化。例如:

         

          int *pointer =NULL;或者int *pointer =0;

          这样进行初始化指针,就使它不会指向任何内存;

 

 

     二、通过指针访问变量值

          int number =15;

          int *pointer = &number;

          int result = 0;

          result = *pointer +5;

          表达式*pointer将计算存放在 指针存放的地址 的变量值;

          其中,*叫做 间接运算符,又叫做 提取运算符;

 

实例代码:

------------------------

#include<stdio.h>

int main(int argc,char *argv[])

{
        int number = 0;
        int *pointer =NULL;

 number =10;
 printf("number's address is:%X./n" , &number);
 printf("number's value   is:%d./n" , number);

 pointer = &number;
 printf("pointer's value   is:%X./n" , pointer);
 printf("pointer's address is:%X./n" , &pointer);
 printf("pointer's size    is:%d./n" , sizeof(pointer));
 printf("value pointed to  is:%d./n" , *pointer);

}

 

程序执行结果

------------------------

number's address is:12FF7C.
number's value   is:10.
pointer's value   is:12FF7C.
pointer's address is:12FF78.
pointer's size    is:4.
value pointed to  is:10.
Press any key to continue

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值