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

简介: //=====================================================// Name : Pointer1.
//=====================================================
// 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;
}

相关文章
|
12天前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
17天前
|
算法 数据挖掘 Shell
「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda
还在为生信软件的安装配置而烦恼?micromamba(micromamba是mamba包管理器的小型版本,采用C++实现,具有mamba的核心功能,且体积更小,可以脱离conda独立运行,更易于部署)帮你解决!
39 1
|
1月前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
28 1
|
1月前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
22 2
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
144 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
1月前
|
存储 安全 编译器
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值(一)
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值
|
1月前
|
算法 C++
【算法】双指针+二分(C/C++
【算法】双指针+二分(C/C++
|
1月前
|
存储 编译器 程序员
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值(二)
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值
|
19天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
21 4
|
19天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
18 4