1. ホーム

[今日のポイント】 「[エラー] '*'トークンの前に識別子があることが予想される」に対する解決策

2022-03-16 01:09:58
<パス

まず、本の教科書に載っているコードに習って、次のようなコードを打ち込みました。

#include

using namespace std;
void swap_i(int *num1,*num2)
{
	int t;
	t=*num1;
	*num1=*num2;
	*num2=t;
 } 
 void swap(void *num1,void *num2,int size)
 {
 	char *first=(char*)num1,*second=(char *)num2;
 	for(int k=0;k<size;k++)
 	{
 		char temp;
 		temp=first[k];
 		first[k]=second[k];
 		second[k]=temp;
	 }
 }
 int main()
 {
 	int a=3,b=6;
 	double x=2.3,y=4.5;
 	char c1[8]="John",c2[8]="Antony";
 	cout<<"before swap:a="<<<a<<"b= "<<b<<<endl;
	 swap_i(&a,&b);
	 cout<<"after swap:a="<<a<a<<"b="<<b<<<endl;
	 cout<<"before swap:x="<<<x<<"y="<<y<<<endl;
	 swap(&x,&y,sizeof(x));
	 cout<<"after swap:x="<<<x<<"y="<<y<<<endl;
	 cout<<"before swap:c1"<<<c1<<"c2="<<<c2<<<endl;
	 swap(&c1,&c2,sizeof(c1));
	 cout<<"after swap:c1="<<<c1<<"c2="<<<c2<<<endl;
	 return 0; 
 }


まさに本に書いてある通り、しかし......。



出力が出ないハハハハ



エラーの捕捉に成功しました。







ウェブ検索がうまくいかなかった後



エラー行を見ると、エラーが表示されている



突然の



悟った

にて募集中 IDを取得する前に



しかし、私の最初のシェイプパラメータの括弧内の2つ目は、名前がありません。



したがって



を追加するだけです。
num2 の前に int



で完了です。

using namespace std;
void swap_i(int *num1,int *num2)
{
	int t;
	t=*num1;
	*num1=*num2;
	*num2=t;
 } 
 void swap(void *num1,void *num2,int size)
 {
 	char *first=(char*)num1,*second=(char *)num2;
 	for(int k=0;k<size;k++)
 	{
 		char temp;
 		temp=first[k];
 		first[k]=second[k];
 		second[k]=temp;
	 }
 }
 int main()
 {
 	int a=3,b=6;
 	double x=2.3,y=4.5;
 	char c1[8]="John",c2[8]="Antony";
 	cout<<"before swap:a="<<<a<<"b= "<<b<<<endl;
	 swap_i(&a,&b);
	 cout<<"after swap:a="<<a<a<<"b="<<b<<<endl;
	 cout<<"before swap:x="<<<x<<"y="<<y<<<endl;
	 swap(&x,&y,sizeof(x));
	 cout<<"after swap:x="<<<x<<"y="<<y<<<endl;
	 cout<<"before swap:c1"<<<c1<<"c2="<<<c2<<<endl;
	 swap(&c1,&c2,sizeof(c1));
	 cout<<"after swap:c1="<<<c1<<"c2="<<<c2<<<endl;
	 return 0; 
 }


void swap_i(int *num1,int *num2)


最後にスワップが成功した前後の数値を出力します。