이런 헷갈리는 보이드 함수의 예로 아래와 같은 함수가 또 있네요.
using namespace std;
void toUpper(char string[])
{
for(char* p=string; *p !='\0'; p++)
{
if(*p >= 'a' && *p <= 'z') //Only if it's a lower letter
{
*p -= 32;
}
}
// char* q = string; *q='p'; *(q+1)='q';
//pqCDEFGHIJKLMNOPQRSTUVWX
// 포인터의 변경된것은 원래의 포인터 변수를 쓰거나 말거나 상관없이 변경된다.
// string=q; // 이걸 써주면 이해에 도움은 되겠지만, 안써줘도 상관없다.
};
int main(void)
{
char message2[5] = {'a','b','c'};
char message[25] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x'};
toUpper(message);
cout << endl << message << endl << endl; // ABCDEFGHIJKLMNOPQRSTUVWX
cout << endl << message2 << endl << endl; //abc
return 0;
};