zoukankan      html  css  js  c++  java
  • C程序范例(4)——指针

    一、地址和指针的概念。

    1、变量的内容和变量的地址。

    在程序运行期间,程序代码,变量,数组,等都存放在内存中,内存单元中存储的内容就是变量的值。计算机的内存是连续的存储空间。内存编织是连续的,基本单位是字节。编译后,每一个变量名对应一个变量地址。引用一个变量就是从该变量名对应的地址中取出的数据。而给变量赋值,则是将该数据按该变量的类型存入对应的内存单元中。

    2、指针的概念。

    地址“指向”目标变量,C语言形象的把地址叫做指针,变量的值针灸师变量的地址,指针类型就是地址类型。而存放指针的另一变量就是指针类型的变量(指针变量)

    3、指针变量。

    必须先定义后使用,指针变量是存放地址的,该地址所代表的变量可能是不同类型的,所以定义一个指针变量时,必须同时指定它指向的变量的类型,称之为基类型。

    (1)定义格式:

    类型名 *指针变量名;

    (2)定义时的初始化。

    可以使用&变量名来对它进行初始化。diuble *p;p=&n;

    (3)指针变量的引用。

    &:取地址运算符 *:指向运算符(可以互相抵消)

    (4)指针变量的引用。

    注意:p=&a;是给指针变量p赋值,*p=3;是给p指向的变量赋值。俩者的含义完全不同。指针变量只存放地址,不能用整形或其他非地址类型赋值给变量。

    (5)两种访问变量的方式。

    直接访问:直接引用变量名。

    间接访问:通过指针变量和指向运算符来引用。

    (6)用二级指针实现对指针变量的引用传递。

    类型名 **二级指针变量名=&指针变量名;**p就是p指向的指针变量所指向的整形变量。

    二、指针与数组。

    1、定义指向数组元素的指针变量。

    int a【8】,b【10】;

    int *p=&a【0】;

    p=b;

    2、指针运算。

    (1)指针变量可以进行指向运算和加减运算。

    (2)指针变量可以加减一个整数。

    (3)两个同类型的指针可以进行比较运算。

    (4)C语言设置了一个指针变量,NULL,成为空指针,空指针不指向任何存储地址单元。

    3、通过指针访问数组元素。

    (1)*(p+i)或*(a+i)都表示数组元素a【i】,而p+i或a+i都表示a【i】的地址&啊【i】。

    (2)指针变量也可以带下标,如p【i】与*(p+i)等价。

    (3)注意p是变量,a是符号常量,不能给a赋值。

    4、字符指针,字符数组和字符串。

    (1)用字符指针访问字符数组。

    对于字符数组也和其他类型的数组一样,可通过数组名和指针变量。

    5、地址越界问题。

    (1)用指针变量访问数组元素时,随时要检查指针的变化范围,始终不能越界。

    (2)引用指针变量前一定要对它正确赋值。

    (3)指针运算中注意各运算符的优先级和结合顺序。

    (4)字符串整体输入时,必须要限制数组长度。

  • 相关阅读:
    java 内部类
    webservice restful rpc
    linux 修改文件权限chmod
    java ThreadLocal的理解
    转:Eclipse常用开发插件
    Eclipse安装插件支持jQuery智能提示
    转:VS2008 vs2010中JQUERY智能提醒
    jquery ui和jquery easy ui的区别
    线程池
    java连接数据库URL
  • 原文地址:https://www.cnblogs.com/yjds/p/6523159.html
Copyright © 2011-2022 走看看