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

简介: 思路三:自定义函数用 while循环 进行循环打印总体思路:(一).自定义函数print: 函数参数:float* p -- 数组首元素地址int sz -- 数组元素个数 使用指针变量表示元素个数:float* q = p + sz;

思路三:自定义函数用 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;
}

实现图片:


image.png

第二步:

主函数

(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;
}

实现图片:

image.png

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

最终代码:

#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;
}


实现效果:

f3e8a1397d2e4349b690356ea2837b78.png 

相关文章
|
4天前
|
编译器 C语言
【C语言初阶】指针篇—下
【C语言初阶】指针篇—下
|
4天前
|
存储 C语言
【C语言初阶】指针篇—上
【C语言初阶】指针篇—上
|
14天前
|
搜索推荐 程序员 C语言
指针赋值与引用传递:C语言的基础知识与实践技巧
指针赋值与引用传递:C语言的基础知识与实践技巧
|
2天前
|
安全 C语言
C语言8 数组与字符串
C语言8 数组与字符串
5 0
|
7天前
|
存储 编译器 定位技术
结构体数组在C语言中的应用与优化策略
结构体数组在C语言中的应用与优化策略
|
13天前
|
存储 编译器 数据库
结构体数组在C语言中的应用与优化技巧
结构体数组在C语言中的应用与优化技巧
|
13天前
|
搜索推荐 程序员 C语言
指针赋值与引用传递:C语言的基础知识与实践技巧
指针赋值与引用传递:C语言的基础知识与实践技巧
|
17天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
19 0
|
18天前
|
C语言
C语言中的函数指针、指针函数与函数回调
C语言中的函数指针、指针函数与函数回调
11 0