题目:
写一个函数打印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; }
实现效果: