指针练习:ForEach

指针练习:ForEach

总时间限制: 
1000ms

内存限制: 
65536kB
描述

程序填空,使得输出结果为:

1,4,9,16,25, 
h,e,l,l,o,!,

#include <iostream>
using namespace std;

void ForEach(void * a, int width, int num,
// 在此处补充你的代码
)

{
	for(int i = 0;i < num; ++i)
		f((char*)a+width*i);
}

void PrintSquare(void * p)
{
	int * q = (int*)p;
	int n = *q;
	cout << n * n << ",";
}
void PrintChar(void * p) {
	char * q = (char*)p;
	cout << *q << ",";
}
int main()
{
	int a[5] = {1,2,3,4,5};
	char s[] = "hello!";
	ForEach(a,sizeof(int),5,PrintSquare);
	cout << endl;
	ForEach(s,sizeof(char),6,PrintChar);
	return 0;
}
输入
输出
1,4,9,16,25,
h,e,l,l,o,!,
样例输入
样例输出
1,4,9,16,25,
h,e,l,l,o,!,
来源
Guo Wei
源代码:
void (*f)(void*)
时间: 2024-10-17 18:57:56

指针练习:ForEach的相关文章

MongoDB 操作手册CRUD查询指针

枚举遍历指针 概述 前面已经讲过,db.collection.find()如果没有指定给一个var声明的变量,将自动枚举前20条记录. 手动枚举指针 在mongo控制台中,将查询赋给一个var声明的变量,让其不自动枚举. var cur = db.testData.find(); 然后每次调用这个指针,将自动遍历20条 cur; 也可以使用指针的next()方法来获取下一条记录 var cur = db.testData.find(); while(cur.hasNext()) { print(

php 中foreach比for快之原因

这里首先要谈到php 的hashtabletypedef struct _hashtable { uint nTableSize; // hash Bucket的大小,最小为8,以2x增长. uint nTableMask; // nTableSize-1 , 索引取值的优化 uint nNumOfElements; // hash Bucket中当前存在的元素个数,count()函数会直接返回此值 ulong nNextFreeElement; // 下一个数字索引的位置 Bucket *pI

PHP 编程中 10 个最常见的错误,你犯过几个?

错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法: $arr = array(1,2,3,4); foreach($arr as&$value){    $value = $value *2; } // $arr is now array(2, 4, 6, 8) 这里有个问题很多人会迷糊. 错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好

常用C#关键字详解教程

很多在学习网站后台的同学都对C#的关键字有些摸不到头脑,现在就和大家一起学习一下这些关键字的含义 类型 Void 用作方法的返回类型时,void 关键字指定方法不返回值. 在方法的参数列表中不允许使用 void.采用以下形式声明一个无参数的.不返回值的方法: Ovid SampleMethod(); Var 在方法范围中声明的变量可以具有隐式类型 var.隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型. 有返回值 引用类型 Class 类是使用关键字 class

php Hash Table(一) Hash Table的结构

Hash Table的结构图: 在上图中发现:Bucket1和Bucket2是hash冲突的双向链表,但是后添加的Bucket2是添加到头部的,可以看到Bucket2的pListLast和pNext指向Bucket1. 对HashTable结构体的字段解释: 1.nTableSize.顾名思义这个是整个哈希表分配的大小(在内部实现的C中分配的数组大小,PHP是动态的但到底层数组是有大小的是静态的),他的大小有一个固定的申请算法,一般是最接近并且大于当前这个数值的2的乘方,描述的可能有点模糊,举个

C++ STL(一)string的用法

# 1.string的用法- string在<iostream>的头中就有,但是还是得用<string>的头 ##### 构造函数- str(const char* ch) 直接赋值- str(size_t n,char ch) 赋值n个ch字符- str(char* ch,size_t n) 取ch指针的前n位- str(string& str,size_t index,size_t length) 从index开始取length位- str(string& st

php底层源码之数组

数组key和value的限制条件 1 <?php 2 $arr = array( 3 1 => 'a', 4 "1" => "b", 5 1.5 => "c", 6 true => "d" 7 ); 8 var_dump($arr); 9 10 $arr = array( 11 "foo" => "bar", 12 "bar" =&

PHP遍历数组常用方式(for,foreach,while,指针等等)

1使用for循环遍历数组 count($arr)用于统计数组元素个数         for循环只能用于遍历,纯索引数组!!如果存在关联数组,count统计两种数组的总个数         使用for循环遍历混合数组,导致数组越界 $arr=array(1,2,3,4,5,6,7);          $num=count($arr);//count最好放在for外面,可以让函数只执行一次          for($i=0;$i<count($arr);$i++){          echo

foreach的指针问题

从代码: $arr = array(1,2,3,4,5); echo '$arr = array(1,2,3,4,5)','<br>'; foreach($arr as $key => &$row) { echo key($arr), '=>', current($arr), "||"; echo $key, '=>', $row, "<br>"; } foreach($arr as $key => $row)