精华内容
下载资源
问答
  • 1.指针的定义: 数据类型 * 指针变量名 int a=20; int * p; p=&a;//此处&为取址符 也可以直接写成 int * p=&a; 2.使用指针 可以通过解引用的方式来找到指针指向的内存 指针前加*代表解引用,找到指针...

    指针变量:用于存放内存单元地址的变量(记录地址编号(十六进制))
    指针的作用 通过指针间接访问内存。
    一般通过一个变量的变量名直接访问变量,要是通过指针访问一个变量则是简介访问

    1.指针的定义:
    数据类型 * 指针变量名

    int a=20;
    int * p;
    p=&a;//此处&为取址符 
    

    也可以直接写成 int * p=&a;
    2.使用指针
    可以通过解引用的方式来找到指针指向的内存
    指针前加*代表解引用,找到指针指向的内存中的数据
    p代表你真的指针指向的内存里面所取得数据(你找到了房子里面的人)
    p=1000;(假替身带上皇冠成为了真皇帝)
    则a=1000;
    3.指针所占的内存空间
    C++规定:在32位操作系统(x86)下,指针无论什么类型都占4个字节空间
    64位(x64)占8个字节
    sizeof(int *)

    4.空指针: 指针变量指向内存中编号为0的空间

    int * p=NULL;
    

    如果你要int * p=NULL;//空指针用于初始化指针变量 *p=100; 系统会报错,你访问空指针指向的变量并给它赋值的做法是错误的

    因为空指针指向的内存是不可访问的
    (0~255的内存是被系统占用的)
    5.野指针
    野指针指向非法的内存空间
    这种情况,编译器是不会检测出来的,但是
    运行的时候会出现问题。
    你在没有变量的情况下,硬生生的访问一个别的地址,就跟你跟房主是陌生人,非得进去人家房子。
    意味着指针指向了一个地址是不确定的变量
    在这里插入图片描述
    空指针和野指针并不是我们所能申请的空间,请不要访问

    展开全文
  • 指针的定义和使用

    2020-06-16 17:00:48
    #include<iostream> using namespace std; int main() { /*定义一个指针*/ int a = 10;... /*指针定义的语法: 数据类型*指针变量名*/ ... "a地址为:" <... /*可以通过解引用的方式来找到指针.
    #include<iostream>
    using namespace std;
    
    int main()
    {
    	/*定义一个指针*/
    	int a = 10;
    	/*指针定义的语法: 数据类型*指针变量名*/
    	int* p;
    	p = &a;
    	cout << "a的地址为:" << &a << endl;
    	cout << "指针p为:" << p << endl;
    
    	/*可以通过解引用的方式来找到指针的内存*/
    	/*指针前面加*代表解引用,找到指针指向的内存中的数据*/
    	*p = 1000;
    	cout << "*p的值为:" << *p << endl;
    	cout << "a的值为:" << a << endl;
    
    	return 0;
    }
    
    
    

    野指针:

     

    展开全文
  • 结构体指针的定义和引用

    千次阅读 2014-11-27 10:35:01
    指针变量非常灵活方便,可以指向任一类型变量,若定义指针变量指向结构体类型变 量,则可以通过指针引用结构体类型变量。 7.3.1 指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name...
    指针变量非常灵活方便,可以指向任一类型的变量,若定义指针变量指向结构体类型变
    量,则可以通过指针来引用结构体类型变量。
    7.3.1 指向结构体类型变量的使用
    首先让我们定义结构体:
    struct stu
    {
    char name[20];
    long number;
    float score[4];
    } ;
    再定义指向结构体类型变量的指针变量:
    struct stu *p1, *p2 ;
    定义指针变量p 1、p 2,分别指向结构体类型变量。引用形式为:指针变量→成员;
    [例7-2] 对指向结构体类型变量的正确使用。输入一个结构体类型变量的成员,并输出。
    #include <stdlib.h> /*使用m a l l o c ( ) 需要* /
    struct data / *定义结构体* /
    {
    int day,month,year;
    } ;
    struct stu /*定义结构体* /
    {
    char name[20];
    long num;
    struct data birthday; /嵌*套的结构体类型成员*/
    } ;
    main() /*定义m a i n ( ) 函数* /
    {
    struct stu *student; 定/*义结构体类型指针*/
    student=malloc(sizeof(struct stu)); 为/指* 针变量分配安全的地址*/
    printf("Input name,number,year,month,day:/n");
    scanf("%s",student->name); 输/*入学生姓名、学号、出生年月日*/
    scanf("%ld",&student->num);
    scanf("%d%d%d",&student->birthday.year,&student->birthday.month,
    &student->birthday.day);
    printf("/nOutputname,number,year,month,day/n");
    /*打印输出各成员项的值*/
    printf("%20s%10ld%10d//%d//%d/n",student->name,student->num,
    student->birthday.year,student->birthday.month,
    student->birthday.day);
    }
    程序中使用结构体类型指针引用结构体变量的成员,需要通过C提供的函数malloc()来为
    指针分配安全的地址。函数sizeof()返回值是计算给定数据类型所占内存的字节数。指针所指
    各成员形式为:
    student->name
    student->num
    student->birthday.year
    student->birthday.month
    student->birthday.day
    结构体指针的定义和引用 
    7.3.2 指向结构体类型数组的指针的使用
    定义一个结构体类型数组,其数组名是数组的首地址,这一点前面的课程介绍得很清楚。
    定义结构体类型的指针,既可以指向数组的元素,也可以指向数组,在使用时要加以区分。
    [例7-3] 在例7 - 2中定义了结构体类型,根据此类型再定义结构体数组及指向结构体类型的指针。
    struct data 
    {
    intday,month,year;
    };
    struct stu/*定义结构体*/
    {
    char name[20];
    long num;
    struct data birthday;/嵌*套的结构体类型成员*/
    };
    struct stustudent[4],*p;定/*义结构体数组及指向结构体类型的指针*/
    作p=student,此时指针p就指向了结构体数组student。
    p是指向一维结构体数组的指针,对数组元素的引用可采用三种方法。
    1)地址法
    student+i和p+i均表示数组第i个元素的地址,数组元素各成员的引用形式为:
    (student+i)->name、(student+i)->num和(p+i)->name、(p+i)->num等。student+i和p+i
    与&student[i]意义相同。
    2)指针法
    若p指向数组的某一个元素,则p++就指向其后续元素。
    3)指针的数组表示法
    若p=student,我们说指针p指向数组student,p[i]表示数组的第i个元素,其效果与
    student[i]等同。对数组成员的引用描述为:p[i].name、p[i].num等。
    [例7-4]指向结构体数组的指针变量的使用。
    structdata/*定义结构体类型*/
    {
    intday,month,year;
    };
    structstu/*定义结构体类型*/
    {
    char name[20];
    long num;
    struct data birthday;
    };
    main()
    {inti;
    structstu*p,student[4]={{"liying",1,1978,5,23},{"wangping",2,1979,3,14},
    {"libo",3,1980,5,6},{"xuyan",4,1980,4,21}};
    /*定义结构体数组并初始化*/
    p=student;/*将数组的首地址赋值给指针p,p指向了一维数组student*/
    printf("/n1----Outputname,number,year,month,day/n");
    for(i=0;i<4;i++)/*采用指针法输出数组元素的各成员*/
    printf("%20s%10ld%10d//%d//%d/n",(p+i)->name,(p+i)->num,
    (p+i)->birthday.year,(p+i)->birthday.month,
    (p+i)->birthday.day);
    }
    结构体指针的定义和引用
    展开全文
  • C++ 引用和指针区别1、指针有自己的一块空间,而引用只是一个别名;2、指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象的引用;3、指针和引用使用++运算符的意义不一样。指针指针的特殊之处在于:...

    3efffe238425c2797d87a7e686d4a18d.png

    C++ 引用和指针区别

    1、指针有自己的一块空间,而引用只是一个别名;

    2、指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象的引用;

    3、指针和引用使用++运算符的意义不一样。

    指针

    指针的特殊之处在于:指针变量相对应的内存空间存储的值恰好是某个内存地址。这也是指针变量区别去其他变量的特征之一。例如某个指针的定义如下:int x = 5;

    int *ptr = &x;

    ptr即是一个指正变量名。通过指针获取这个指针指向的内存中的值称为解引用。空指针是不能解引用的。

    指针内存空间的表示如下:

    63430f6b6742156d6b54d5e4deaa425a.png

    引用

    引用(reference)在C++中也是经常被用到,尤其是在作为函数参数的时候,需要在函数内部修改更新函数外部的值的时候。首先我们必须明确的一点就是:引用是一种特殊的指针。

    引用是一个指向其它对象的常量指针,它保存着所指对象的存储地址。并且使用的时候会自动解引用,而不需要像使用指针一样显式提领。

    例如引用的定义如下:int x = 5;

    int &y = x;

    推荐教程:《C#》

    展开全文
  • 指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name[20]; long number; float score[4]; } ; 再定义指向结构体类型变量的指针变量: struct stu *p1, *p2 ; 定义指针变量p 1、p 2,...
  • 引用不是一种独立数据类型,对引用只有声明,没有定义;2.声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量;3.在声明一个引用后,不能再使之作为另一变量的引用int a1,a2;int &b=a1;int &b=a2; ...
  • 函数指针的定义    函数指针就是指向代码入口地址的指针,是指向函数的指针变量。所以“函数指针”本身是一个指针变量,并且该指针指向的是函数。C语言在编译时,每一个函数都有一个入口地址,该入口地址就是函数...
  • 结构体指针的定义和使用

    千次阅读 2013-03-02 17:41:49
    指针变量非常灵活方便,可以指向任一类型变量,若定义指针变量指向结构体类型变量,则可以通过指针引用结构体类型变量。 1、 指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name[20]...
  • C++中的引用和指针 ★ 相同点: 1. 都是地址概念;指针指向一块内存,它内容是所指内存地址;引用是某块内存别名(java中引用其实也是别名意思)。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名;2. ...
  • 引用和指针的使用区别

    千次阅读 2006-08-08 21:45:00
    引用和指针的使用区别 一个引用在使用时相当于 *p;引用的定义则是 object &a = object();指针则是 object *a = &object();引用的内存不能删除,一般为栈变量。 能用引用尽量使用引用。 引用作为参数时,不能传...
  • C++ 引用和指针的区别

    2020-09-15 16:02:52
    引用和指针的区别 引用需在定义时赋初值(起别名! 这个东西必须存在才可以叫起别名,不存在指向空值的引用) 指针无需在定义时赋初始值,在块作用域内定义的指针如果没有初始化,也将拥有一个不确定的值,即不存在...
  • 引用和指针的区别

    2017-08-10 20:59:42
    1、指针和引用在编写方法完全不同,指针使用操作符*->,引用使用操作符&; 2、初始化要求不同。引用在创建同时必须初始化,而指针定义的时候 不必初始化,可以再定义后面任何地方重新赋值; 3、可修改性...
  • 引用和指针的异同

    2018-07-17 16:32:23
    引用使用: 数据类型 &amp; 变量名 例: int &amp;a ...1.指针在定义时,可以不初始化,引用必须初始化 ...2.指针变量指向的地址...4.使用sizeof求指针的大小总为4,但求引用要看引用的源头,即引用的变量...
  • C:\Users\Administrator\Documents\TreeView\mainwindow.h:31: error: C2079: '...超前引用不可使用类名来定义变量函数变量参数,只可用来定义引用或者指针。 转载于:https://www.cnblogs.com/gaoxianz...
  • 引用和指针的区别 (1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联;而指针...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,893
精华内容 1,157
关键字:

引用和指针的定义和使用