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

//=====================================================
// Name        : Pointer1.cpp
// Author      : lf
// Version     : 《C++语言基础教程》 吕凤翥 P35——P37 2.5.1
// Description : 指针
// Tips        :
// int *P ---------> p是一个指向int型变量的指针
// char *c---------> c是一个指向char型变量的指针
// char (*pa)[3]---> pa是一个指向char型字符数组的指针
// int (*pf)()-----> pf是一个指向函数的指针,该方法的输入参数为空,返回值是int
// int * *pp-------> pp是一个指向指针的指针,即二级指针
//=====================================================

#include <iostream>
using namespace std;

int main() {
	cout << "<----变量,数组元素,结构成员等地址值都表示为变量名前面加运算符&---->" << endl;
	int a=5;
	int b[5]={1,2,3,4,5};
	//取整型变量的地址值
	int *p1=&a;
	cout <<"取出指针里面保存的地址的方式:p1="<<p1<<endl;
	cout <<"取出指针里面保存的地址所表示的值的方式:*p1="<<*p1<<endl;
	//取数组中某个值的地址值,如此处:
	//取出数据b中下标为3的值的地址
	int *p2=&b[3];
	cout <<"p1="<<p1<<",p2="<<p2<<endl;
	cout<<"--------------------------"<<endl;

	cout<<"<----数组的地址用数组名表示---->"<<endl;
	int c[2]={1,2};
	int *p3=c;
	cout <<"p3="<<p3<<endl;
	cout<<"--------------------------"<<endl;

	cout<<"<----C++规定:任何数组的数组名都是一个常量指针,其值是该数组首元素的地址值---->"<<endl;
	cout<<"<----在以下示例中:d是一个二维数组两行三列.p4是一个指向一维数组的指针,它所指向的是有3个元素的一维数组.---->"<<endl;
	cout<<"<----将d赋值给p4是让p4指向二维数组的第0行.二维数组的第0行就是该二维数组的首元素---->"<<endl;
	cout<<"<----同理p5指向e的第一个元素---->"<<endl;

	int d[2][3];
	int (*p4)[3];
	p4=d;

	int e[3]={2,3,4};
	int *p5=e;
	cout <<"p4="<<p4<<",p5="<<p5<<endl;
	cout<<"--------------------------"<<endl;

	cout<<"<----函数的地址值可以用函数名来表示---->"<<endl;
	cout<<"<----即一个指向函数的指针可用它所指向的函数名来赋值---->"<<endl;
	cout<<"<----在以下示例中:p6是一个指向函数的指针.所指向的函数输入参数为double,输出结果亦为double---->"<<endl;
	cout<<"<----在这里sin给p6赋值,实际上是让p6指针指向sin函数在内存中的入口地址---->"<<endl;
	double sin (double x);
	double (*p6) (double);
	p6=sin;
	cout <<"p6="<<p6<<endl;
	return 0;
}

double sin (double x){
	return 0.0;
}
时间: 2024-09-20 02:59:15

C++基础教程(六)——指针(1)的相关文章

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

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

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

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

FrontPage 2003基础教程(六) 插入WEB组件

WEB组件中有很多常用的功能,你自己去试各项. 查看全套FrontPage 2003基础教程

移动网站开发教程六,MySQL数据库基础

一.数据类型 1.整型 数据类型存储空间说明取值范围 TINYINT1字节非常小的整数带符号值:-128~127 无符号值:0~255 SMALLINT2字节较小的整数带符号值:-32768~32767 无符号值:0~65535 MEDIUMNT3字节中等大小的整数带符号值:-8388608~8388607 无符号值:0~16777215 INT4字节标准整数带符号值:-2147483648~2147483647 无符号值:0~4294967295 BIGINT8字节大整数 2.浮点型 数据类型

FrontPage 2003基础教程(十六) 在网页中插入链接栏

1.光标在要插入链接栏的地方或选中共享边框 2.点击"插入"(或是编辑"链接栏"属性),Web组件,找到"链接栏",有两个选项:基于导航结构的链接栏:自定义链接栏 3.点下一步 4.选择"样式",有多种,自定. 可以选中"使用鲜艳颜色"和"使用动态图形" 5.再选择"横向"或"纵向" 6.点"完成"进入"属性"

AJAX开发基础教程篇

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

【转】[转]黑鹰破解基础教程和VIP提高教程+天草破解教程

黑鹰破解基础教程和VIP提高教程+天草破解教程 第一课       破解工具的介绍 第二课       壳的介绍已经脱壳常用思路 第三课       手脱UPX的几种方法 第四课       手脱ASPack的几种方法 第五课       手脱FSG的几种方法 第六课       手脱PECompact的几种方法 第七课       手脱nspack(北斗) 第八课       手脱Yodas Crypter 第九课       手脱Telock 第十课       手脱PETITE和FSG 2

Excel2007基础教程:插入行和列

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

Excel2007基础教程:隐藏行和列

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