查看C和C++代碼中的用戶輸入(內部for循環)。我們在C++中使用用戶輸入*(p + i),C中使用(p + i)在C中缺少*的原因是什麼? Plz解釋!看看將COMMENT這行......在for循環C&C++中數組的動態內存分配
#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;
}
#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;
}
你爲什麼期望他們是相同的? 'scanf'和'std :: cin'不是一回事。 – mathematician1975
而在Python中,你寫'array [i] = input()'(是的,這不完全相同)。那麼有什麼意義呢?不同的語言有不同的方式來完成某項任務。 – Olaf
如果你把那些數組訪問寫成一個理智的人,C++將是'cin >> p [i];'和C將是'scanf(「%d」,&p[i]);'.C++代碼期望一個對象和C函數需要一個地址。 – Blastfurnace