2020.9.23 第10节 指针进阶

本文详细介绍了C语言中指针的高级用法,包括指针函数的参数传递和返回值类型,字符串处理函数如strcmp、strlen等的使用,动态内存的申请与释放,以及指针数组和数组指针的概念与应用。强调了动态内存必须初始化以避免野指针,指针数组常用于字符串操作,而数组指针则可表示二维数组。
摘要由CSDN通过智能技术生成

文章目录

2020.9.23 第10节 指针进阶

一、指针函数

1.参数是指针

1.1 在子函数中,修改普通的实参的值,传的是普通实参的地址(一级指针),在函数中修改是一级指针

1.2 在子函数总,修改指针的实参的值,传的是指针实参的地址(二级指针),在子函数中修改是*二级指针

void modify(int* a)
{
   
	*a = 1001;
}
void Swap(int* a, int* b)
{
   
	int temp = *a;
	*a = *b;
	*b = temp;
}
int g_num = 9999;
void modifyPoint(int** p)
{
   
	*p = &g_num;
}
int* returnNum()
{
   
	return &g_num;
}

2.返回值是指针

2.1 不能返回局部变量地址

栈区:局部变量 函数参数  当使用完后系统会自动回收内存
//int a 局部变量 不能返回局部变量的地址
int* returnPremer(int a)   //1
{
   
	return &a;  //return 1 &1
}

int* returnPremer2(int* a)  //传入的是指针变量值  0xFF
{
   		
	return  a;				//指针变量的值  return  &0xFF
}
//在数组中
void  initArray(int array[], int arrayNum) 
{
   
	for (int i = 0; i < arrayNum; i++)
	{
   
		array[i] = i;
	}
}   //等效于传一级指针(地址),数组名:数组的首地址
void initArray2(int* array, int arrayNum) 
{
   
	for (int i = 0; i < arrayNum; i++) 
	{
   
		array[i] = i;
	}
}
void printArray(int* array, int arrayNum) 
{
   
	for (int i = 0; i < arrayNum; i++) 
	{
   
		printf("%d\n", array[i]);
	}
}
#include <stdio.h>

指针函数:
	1.参数是指针
		1.1 在子函数中,修改普通的实参的值,传的是普通实参的地址(一级指针),在函数中修改是*一级指针
		1.1 在子函数总,修改指针的实参的值,传的是指针实参的地址(二级指针),在子函数中修改是*二级指针
	2.返回值是指针
		2.1 不能返回局部变量地址

void modify(int* a)	//int *a=&num;
{
   
	*a = 1001;	//*一级指针
}
void Swap(int* a, int* b) 
{
   
	int temp = *a;
	*a = *b;
	*b = temp;
}
int g_num = 9999;
void modifyPoint(int** p)  
{
   
	*p = &g_num;
}

int* returnNum() 
{
   
	return &g_num;
}
//int a 局部变量 不能返回局部变量的地址
int* returnPremer(int a)   //1
{
   
	return &a;  //return 1 &1
}

int* returnPremer2(int* a)  //传入的是指针变量值  0xFF
{
   		
	return  a;				//指针变量的值  return  &0xFF
}

//在数组中   数组写法
void  initArray(int array[], int arrayNum) 
{
   
	for (int i = 0; i <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值