栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

05-指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

05-指针

目录

一、概念、定义、使用

二、指针所占内存空间

三、空指针和野指针

1.空指针

2.野指针

四、const修饰指针

五、指针和数组

六、指针和函数

七、字符指针与字符串

八、案例-指针配合数组和函数


一、概念、定义、使用

作用:

可以通过指针间接访问内存

  • 内存编号是从0开始记录的,一般用十六进制数字表示
  • 可以利用指针变量保存地址

数据类型  * 指针变量名;

#include
using namespace std;

int main()
{
	//1.定义指针
	int a=10;
	//指针定义语法:数据类型 * 指针变量名
	int *p;
	//让指针记录变量a的地址
	p=&a;
	cout<<"a的地址"<<&a<二、指针所占内存空间 

指针也是种数据类型,也会占用内存空间

在32位操作系统下,指针占4个字节空间大小,不管是什么数据类型

在64位操作系统下,指针占8个字节空间大小,不管是什么数据类型

三、空指针和野指针

1.空指针

(指针变量指向内存中编号为0的空间)

用途:初始化指针变量

注意:空指针指向的内存是不可以访问的

int * p = NULL

2.野指针

(指针变量指向非法的内存空间——程序中尽量避免出现野指针)

int * p = ( int *) 0x1100

四、const修饰指针
  • const修饰指针 —— 常量指针
  • const修饰常量 —— 指针常量
  • const既修饰指针,又修饰变量

常量指针:const int * p = &a;

特点:指针的指向可以修改,但是指针指向的值不可以修改

指针常量:int * const p = &a;

特点:指针的指向不可以修改,但是指针指向的值可以修改

既修饰指针 又修饰常量:const int * const p = &a;

特点:指针的指向 和 指针指向的值都不可以修改

五、指针和数组

(利用指针访问数组中元素)

int main()
{
	int arr[]={1,2,3,4,5,6,7,8,9,10};
	cout<<"第一个元素为:"<

六、指针和函数

(利用指针作函数参数,可以修改实参的值)

  • 值传递:不可以改变实参的值
  • 地址传递:可以改变实参的值

七、字符指针与字符串

字符数组:

  • 以''作为结束标志
	char str[]="study";
	//字符数组,占用6个字节('');
	//数组元素为字符变量可以被重新赋值。str[2]='a';

	cout<<"hard"< 
  • 字符指针变量 存放字符型数据的地址 可以用字符数组或字符串常量为字符指针变量赋值 
	char *p1,*p2;
	char str[]="study";
	p1=str;
	p2="hard";
  • 也可以用字符指针变量直接引用字符串常量
	char *p2="hard";

注意:

  • 输出字符指针——输出字符串:输出从字符指针指向的字符开始,直至''结束
	cout< 
  • 输出字符指针的间接引用——输出单个字符
    cout<<*p1< 

八、案例-指针配合数组和函数
#include 
using namespace std;

//封装一个函数 利用冒泡排序 实现对整型数组的升序排序
//如int arr[10] = {4,3,6,9,1,2,10,8,7,5}

void bubbleSort(int *arr,int len)  //arr[]也可写成* arr
{
	for(int i=0;iarr[j+1])
			{
				int temp = arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}

}


void printArray(int *arr,int len)
{
	for(int i=0;i 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号