なぜこれはOKではないのですか?
void func(const char* &pointer){...}
//in main
const char* mainPointer = "a word";
func(mainPointer);
私の意図は、関数へのポインタを送信することです。これは、それ(ポインタ)を変更しますが、それが指している文字は変更しません。
なぜこれはOKではないのですか?
void func(const char* &pointer){...}
//in main
const char* mainPointer = "a word";
func(mainPointer);
私の意図は、関数へのポインタを送信することです。これは、それ(ポインタ)を変更しますが、それが指している文字は変更しません。
次のコード (MS Visual C++ 2010) は、それが完全に可能であり、機能することを示しています。出力は次のとおりです。
#include "stdafx.h"
#include <iostream>
using namespace std;
void func(const char*& ptr)
{
ptr += 6;
}
int _tmain(int argc, _TCHAR* argv[])
{
const char* Ptr = "Hello World!";
func(Ptr);
cout << Ptr << endl;
return 0;
}
Null Voids コードとは対照的に、ここでは func 内のポインターを変更することに注意してください。
全然OKです。実際、それは魅力のように機能します。
#include <iostream>
using namespace std ;
void func(const char* &pointer)
{
cout<<" \n "<<pointer<<"\n";
}
int main()
{
const char* mainPointer = "a word";
func(mainPointer);
cout<<" \nPress any key to continue\n";
cin.ignore();
cin.get();
return 0;
}
プログラム出力:
a word
Press any key to continue
コンパイル出力:
Compiling...
this.cpp
Linking...
this.exe - 0 error(s), 0 warning(s)