下面的例子不起作用,因为foreach在数组的副本上工作,但它在概念上显示了我想要实现的目标.
$items = array('a', 'b', 'c', 'd');
foreach ($items as $i) {
echo $i;
if ($i === 'c') {
$items[] = 'e';
}
}
Run Code Online (Sandbox Code Playgroud)
我想要打印' abcde',但由于上述原因,它只打印' abcd'.我看过了array_map,array_walk其他人却没有找到解决方案.
如何在C++中定义动态多维数组?例如,二维数组?我尝试使用指针指针,但不知怎的,它失败了.
查看C和C++代码中的用户输入(for循环内部).我们在C++的用户输入中使用*(p + i),在C中使用(p + i).什么原因在C中缺少*?Plz解释!看一下COMMENT行...里面的for循环
#include <iostream>
using namespace std;
int main()
{
int n,i;
cout << "Ent size" << endl;
cin>>n;
int *p = new int [n];
for(i=0;i<n;i++)
cin>>*(p+i);//LOOK AT THIS LINE
cout<<"------------\n\n";
for(i=0;i<n;i++)
cout<<*(p+i)<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("Ent size!\n");
scanf("%d",&n);
int *p=(int *)malloc(n*sizeof(int));
int i;
for(i=0;i<n;i++)
scanf("%d",(p+i));//LOOK AT THIS LINE
printf("-------\n\n");
for(i=0;i<n;i++)
printf("%d\n",(p+i));
return 0;
}
Run Code Online (Sandbox Code Playgroud) 在阵列有四个元件,因此大小应4BIT*4 = 16(int数据类型采取在我的系统4位以存储该值.)但是,当我跑这个代码我只得到8位为的大小dynamicArray.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
//Dynamic arrays save memory by creating a pointer that stores
//the beginning of the array
int *dynamicArray = malloc(20 * sizeof(int));
*dynamicArray = 10;
printf("Address %x stores value %d\n", dynamicArray, *dynamicArray);
dynamicArray[1] = 20;
printf("dynamicArray[1] stores value %d\n", dynamicArray[1]);
dynamicArray[2] = 45;
printf("dynamicArray[2] stores value %d\n", dynamicArray[2]);
dynamicArray[3] = 34;
printf("dynamicArray[3] stores value %d\n", dynamicArray[3]);
printf("The size of dynamicArray is %d\n", sizeof(dynamicArray));
// Release unused memory:
free(dynamicArray);
return …Run Code Online (Sandbox Code Playgroud)