C++基础教程-指针

  使用指针可以直接操作内存地址,提高效率,缺点是绕弯比较难理解,本教程为大家介绍C++语言中的指针。

  1、启动 Geany

  1)点菜单“应用程序-编程-Geany”启动 Geany ,新建一个 c++ 源程序;

  2)点菜单“文件-另存为”命令,以“ptr”为文件名,保存文件到自己的文件夹;

  2、指针变量

  1)使用指针前也要先定义,用 * 号来定义,赋值用其他变量的地址,也可以初始化为空 NULL;

  输入下面的代码:

      int a = 25;

      int *p = NULL;

      p = &a; 

  2)第一句定义一个整型变量 a,每个变量都有内存地址,用 &a 命令得到变量的地址,

  第二句定义一个指针变量,类型是整型,星号 * 是定义符号,NULL 表示赋值为空值,

  第三句是给指针变量 p 赋值,值是变量 a 的地址,格式形如 0x123456;

  3)接着我们来显示一下各个变量的值,跟各自的类型相对应;

      cout << "a = " << a;

      cout << "&a= " << &a;

      cout << "p = " << p; 

  4)a 是整型变量,里面装的是整数,&a 是取地址操作符,得到的是地址,

  p 是一个指针变量,里面存放的地址,p 给的是 a 的地址,所以两个地址是相同的;

  5)接下来我们来看利用指针操作它对应的变量,继续输入下面的代码;

      cout << "*p= " << *p << endl;

  6)这儿的 *p 不是定义指针,因为星号 * 前面没有类型,而且 p 已经定义过,不能重复定义,

  这儿的 *p 是间接引用,指向的是 a,因为 p 里存放的是 a 的地址,因此 *p 的值是 25;

  7)利用 *p 可以对变量 a 进行操作,例如下面的代码给 a 重新赋值;

      *p = 16;

      cout <<"a = " << a; 

  #include <iostream>

  using namespace std;

  int main(int argc, char** argv)

  {

      int a = 25;

      int *p = NULL; //定义指针变量,并初始化

      p = &a;        //赋值给指针变量

     

      cout << "a = " << a  << endl;

      cout << "&a= " << &a << endl;

      cout << "p = " << p  << endl;

     

      cout << endl;

     

      cout << "*p= " << *p << endl;

      cout << endl;

     

      *p = 16;     //间接引用,不是定义指针

      cout <<"a = " << a;

      return 0;

  } 

时间: 2024-08-18 10:51:05

C++基础教程-指针的相关文章

C++基础教程(四)——指针(3)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P41--P45 2.5.2 // Description : 指针数组和指向数组的指针以及字符指针 //===================================================== #include <iostre

C++基础教程(六)——指针(1)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P35--P37 2.5.1 // Description : 指针 // Tips : // int *P ---------> p是一个指向int型变量的指针 // char *c---------> c是一个指向char型变量的指针

C++基础教程(五)——指针(2)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P38--P43 2.5.2 // Description : 指针和数组 // Tips : // 在C++中,数组的元素可以用下标表示,也可以用指针表示. // 但是最好是用指针表示,因为指针表示要比下标表示处理起来要快. // 所以在C++中尽量

Excel2007基础教程:插入行和列

Excel2007基础教程:插入行和列 虽然工作表中的行数和列数是固定的,但如果需要为添加信息腾出空间,则用户仍然可以插入和删除行和列.这些操作并不改变行和列的数量.其实,插入一 个新行就是把其他行向下移,腾出一个新行.如果最后一行为空,将从工作表中删除.插入新的一列,其他列将向右移,如果最后一列为空,将会被删除. 注意:如果最后一行不为空,则用户不能插入一个新行.同样地,如果最后一列包含信息,则Excel 不会让用户插入新的一列.如果想尝试添加一行或一列,将显示如图4.11 所示的对话框. 可

Excel2007基础教程:隐藏行和列

Excel2007基础教程:隐藏行和列 在某些情况下,您可能希望隐藏特定的行或列.如果不想让用户看到特定的信息,或者需要打印一份概括工作表中的信息而并非显示全部细节的报告,这是非常有用的. 要隐藏工作表中的行或列,通过单击行或列的标题,选择要隐藏的行或多行.然后右击并从快捷菜单选择"隐藏飞或使用"开始" -> "单元格"->"格式"下拉列表上的命令. 提示:也可通过拖动行或列的边界来隐藏行或列.必须拖动行或列标题的边界.向上

Excel2007基础教程:删除行和列

Excel2007基础教程:删除行和列 您可能也想在一张工作表中删除多个行或列.例如,工作表中可能包含不再需要的旧数据. 要删除一行或多行,可使用下列方法: 单击工作表边界的行号选择一整行或多行.右击并从快捷菜单选择"删除". 把单元格指针移到要删除的行上,然后选择"开始" -> "单元格" -> "删除" -> "删除工作表行".如果选择了列中的多个单元格, Excel 将删除选中的所有

AJAX开发基础教程篇

ajax|基础教程 一. 什么是AJAX? 这个名字代表了异步JavaScript+XMLHTTPRequest,并且意味着你可以在基于浏览器的JavaScript和服务器之间建立套接字通讯.其实AJAX并不是一种新技术,而是已经成功地用于现代浏览器中的若干成功技术的可能性组合.所有的AJAX应用程序实现了一种"丰富的"UI--这是通过JavaScript操作HTML文档对象模型并且经由XMLHttpRequest实现的精确定位的数据检索来实现的.典型的示例AJAX应用程序是Googl

PHP 和 MySQL 基础教程(一)

mysql|基础教程 HTML 和 PHP .MySQL 的交互 为什么要用到数据库? World Wide Web (WWW) 不仅仅是一个提供信息的地方.如果你有什么东西,作一个网站,同样可以和全世界的人一起分享.但是,这并不是一件很容易的事.当网站越做越大时,你可能会遇到这样的问题: 网站包含了太多的东西,使得访问者不能够很快得得到他们想要的东西.这个问题在某种程度上对一个网站而言是致命的. 访问者想要向你提供信息,而且这些信息必须保存下来以备后用. 上面的两个问题,都可以通过数据库来解决

MS SQL基础教程:数据库索引

用户对数据库最频繁的操作是进行数据查询.一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索.当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费.为了提高检索数据的能力,数据库引入了索引机制.本章将介绍索引的概念及其创建与管理. 8.1.1 索引的概念 索引是一个单独的.物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法.一个表的存储是由两部分组成的,一部