작성
·
304
2
char a[20]에서 a가 이미 주소값을 나타내는데, scanf에서 a대신 &a를 써도 무방한건가요? 잘 작동하는 원리가 궁금합니다.
답변 3
0
scanf("%s", a); 밑에 코드를 모두 주석처리하고 a배열을 printf("%s", a)로 출력해서 값이 들어오는지 확인해 보시기 바랍니다. 혹시 제가 드린 소스코드도 한 번 해보시구요. 제가 드린것도 같은 반응을 한다면 컴파일러의 문제가 아닌가 싶습니다.
컴파일러를 업해보시기 바랍니다.
도구-컴파일러 설정 에서 "컴파일러 추가 명령"을 체크하고 "-std=c++14"를 써 넣으세요. 그러면 14버젼의로 업그레드 됩니다.(아래 그림처럼 하세요.)
참고로 기존 질문에 재질문을 하면 저에게 메일로 신호가 오지 않아 질문을 했는지 확인하기가 어렵습니다. 차라리 새 질문으로 해주시면 좋겠습니다.
0
코드 똑같이 했는데 freopen을 해도 콘솔에서 계속 입력하길 기다립니다. freopen에 주석처리를 하고 scanf를 통해 주민등록번호를 입력하면 엔터를 쳐도 계속 입력받는 화면이 나오다가 문자를 치고 엔터를 치면 뜬금없는 숫자가 나옵니다...
0
컴파일러에서 배열의 시작주소를 a 또는 &a를 모두 사용할 수 있도록 설계된게 아닌가 싶습니다. 저도 둘 중 아무거나 사용합니다. scanf("%s", a); 이렇게 사용하는게 정석이니 이렇게 사용하시기 바랍니다.