C语言:使用指针打印数组内容

题目:

写一个函数打印arr数组的内容,不使用数组下标,使用指针

arr一维数组

                    

 =========================================================================

                       

思路一:用 for循环 进行循环打印(未写自定义函数)

总体思路:

(一).

定义一维数组arr

float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };

        

定义指针变量

float* p = arr; -- 把数组名(数组收元素地址)放进指针变量

            

计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);  -- 元素个数

            

(二).

使用 for循环 指针变量 打印数组内容

使用 解引用符号* 获取 指针内容

获取一位后就 调整一次指针,把指针移向下一位

                


                 

第一步:

(1).

定义一维数组arr

float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };

        

(2).

定义指针变量

float* p = arr; -- 把数组名(数组收元素地址)放进指针变量

            

(3).

计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);  -- 元素个数

                     

实现代码:

#include <stdio.h>
int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数


	return 0;
}

实现图片:

                 


                 

第二步:

使用 for循环 指针变量 打印数组内容

            

使用 解引用符号* 获取 指针内容

获取一位后就 调整一次指针,把指针移向下一位

                     

实现代码:

#include <stdio.h>
int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//使用 for循环 和 指针变量 打印数组内容:
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		//使用 解引用符号* 获取指针内容
		printf("%f ", *p);
		//获取一位后就调整一次指针,把指针移向下一位
		p++;
	}

	return 0;
}

实现图片:

                    

思路一:最终代码和实现效果(未写自定义函数)

最终代码:

#include <stdio.h>
int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//使用 for循环 和 指针变量 打印数组内容:
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		//使用 解引用符号* 获取指针内容
		printf("%f ", *p);
		//获取一位后就调整一次指针,把指针移向下一位
		p++;
	}

	return 0;
}

实现效果:

                    

 =========================================================================

                       

思路二:用 while循环 进行循环打印

总体思路:

(一).

定义一维数组arr

float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };

        

定义指针变量

float* p = arr; -- 把数组名(数组收元素地址)放进指针变量

            

计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);  -- 元素个数

            

使用指针变量表示元素个数

float* q = arr + sz;

             

(二).

使用 while循环 指针变量 打印数组内容

         

使用 解引用符号* 获取 指针内容

获取一位后就 调整一次指针,把指针移向下一位:

*p++ -- 先执行 *p 获取指针内容,再执行 p++ 调整指针

                


              

第一步:

(1).

定义一维数组arr

float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };

        

(2).

定义指针变量

float* p = arr; -- 把数组名(数组收元素地址)放进指针变量

            

(3).

计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);  -- 元素个数

            

(4).

使用指针变量表示元素个数

float* q = arr + sz;

                     

实现代码:

#include <stdio.h>
int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//使用指针变量表示元素个数:
	float* q = arr + sz;



	return 0;
}

实现图片:

                 


                  

第二步:

使用 while循环 指针变量 打印数组内容

         

使用 解引用符号* 获取 指针内容

获取一位后就 调整一次指针,把指针移向下一位:

*p++ -- 先执行 *p 获取指针内容,再执行 p++ 调整指针

                     

实现代码:

#include <stdio.h>
int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//使用指针变量表示元素个数:
	float* q = arr + sz; //此时指针变量在最后一个元素地址

	//使用 while循环 和 指针变量 打印数组内容:
	while (p < q)
	//对比地址大小,只要还小于最后一个元素地址就循环
	{
		printf("%.2f ", *p++);
		//*p++ , 先解引用 ,后再p++
	}

	return 0;
}

实现图片:

                    

思路二:最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//使用指针变量表示元素个数:
	float* q = arr + sz; //此时指针变量在最后一个元素地址

	//使用 while循环 和 指针变量 打印数组内容:
	while (p < q)
	//对比地址大小,只要还小于最后一个元素地址就循环
	{
		printf("%.2f ", *p++);
		//*p++ , 先解引用 ,后再p++
	}

	return 0;
}

实现效果:

                     

 =========================================================================

                       

思路三:自定义函数用 while循环 进行循环打印

总体思路:

(一).

自定义函数print:

         

函数参数:

float* p -- 数组首元素地址

int sz -- 数组元素个数

              

使用指针变量表示元素个数

float* q = p + sz;

          

使用 while循环 指针变量 打印数组内容

使用 解引用符号* 获取 指针内容

获取一位后就 调整一次指针,把指针移向下一位:

*p++ -- 先执行 *p 获取指针内容,再执行 p++ 调整指针

            

(二).

主函数

             

定义一维数组arr

float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };

        

定义指针变量

float* p = arr; -- 把数组名(数组收元素地址)放进指针变量

            

计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);  -- 元素个数

          

调用自定义函数

print(p, sz);

                


              

第一步:

自定义函数print:

         

(1).

函数参数:

float* p -- 数组首元素地址

int sz -- 数组元素个数

              

(2).

使用指针变量表示元素个数

float* q = p + sz;

          

(3).

使用 while循环 指针变量 打印数组内容

使用 解引用符号* 获取 指针内容

获取一位后就 调整一次指针,把指针移向下一位:

*p++ -- 先执行 *p 获取指针内容,再执行 p++ 调整指针

                     

实现代码:

#include <stdio.h>

//自定义函数print:
void print(float* p, int sz)
{
	//使用指针变量表示元素个数:
	float* q = p + sz; //此时指针变量在最后一个元素地址

	//使用 while循环 和 指针变量 打印数组内容:
	while (p < q)
		//对比地址大小,只要还小于最后一个元素地址就循环
	{
		printf("%.2f ", *p++);
		//*p++ , 先解引用 ,后再p++
	}
}

int main()
{

	return 0;
}

实现图片:

                 


                 

第二步:

主函数

             

(1).

定义一维数组arr

float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };

        

(2).

定义指针变量

float* p = arr; -- 把数组名(数组收元素地址)放进指针变量

            

(3).

计算数组元素个数

int sz = sizeof(arr) / sizeof(arr[0]);  -- 元素个数

          

(4).

调用自定义函数

print(p, sz);

                     

实现代码:

#include <stdio.h>

//自定义函数print:
void print(float* p, int sz)
{
	//使用指针变量表示元素个数:
	float* q = p + sz; //此时指针变量在最后一个元素地址

	//使用 while循环 和 指针变量 打印数组内容:
	while (p < q)
		//对比地址大小,只要还小于最后一个元素地址就循环
	{
		printf("%.2f ", *p++);
		//*p++ , 先解引用 ,后再p++
	}
}

int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//调用自定义函数进行打印数组元素:
	print(p, sz);

	return 0;
}

实现图片:

                    

思路三:最终代码和实现效果

最终代码:

#include <stdio.h>

//自定义函数print:
void print(float* p, int sz)
{
	//使用指针变量表示元素个数:
	float* q = p + sz; //此时指针变量在最后一个元素地址

	//使用 while循环 和 指针变量 打印数组内容:
	while (p < q)
		//对比地址大小,只要还小于最后一个元素地址就循环
	{
		printf("%.2f ", *p++);
		//*p++ , 先解引用 ,后再p++
	}
}

int main()
{
	//定义一维数组:
	float arr[] = { 3.14f,99.9f,66.5f,0.0f };

	//定义指针变量:
	float* p = arr; //把数组名(首地址)放进指针中

	//计算数组元素个数:
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数

	//调用自定义函数进行打印数组元素:
	print(p, sz);

	return 0;
}

实现效果:

猜你喜欢

转载自blog.csdn.net/weixin_63176266/article/details/131344359