전체 글
const char * 형식의 값을 사용하여 char * 형식의 엔터티를 초기화할 수 없습니다. (해결법, 준수 모드의 기능과 목적)
구버전의 visual studio 에서는 정상적으로 실행될 것이나 2017년도의 버전 이상 부터 출력되는 오류라고 한다. 첫번째 해결법은 기존의 char *포인터변수를 const char *포인터변수 이렇게 앞에 const를 붙여 해결한다. 두번째 해결법은 파일 확장자를 .cpp 이 아니라 .c 로 바꿔주는 것이다. c++ 문법과 c의 문법이 아무래도 포인터와 관련해서 차이점이 있는 모양이다. 세번째 해결 방법은 다음과 같다 이렇게 준수 모드를 아니요로 설정한 후 적용을 눌러 설정을 완료하면 해결된다. 어째서 버전 업데이트로 인해 이런 오류를 출력하게 되었는가? 이전 버전은 위의 준수 모드의 설정이 '아니요' 가 기본 설정이라고 한다. 2017년 버전에서 부터 준수 모드가 '예'로 설정되었다고 하는데 준..
포인터와 배열의 상관 관계, 포인터 배열, 이중 포인터
/* char 포인터 사용 예 */ #include // char형 포인터는 값을 참고할 때와는 다르게 포인터변수에 주소를 치환하지 않는다. void main() { char *animal = "dog"; int i = 0; do // do while 문은 일단 실행한 후에 while 조건을 확인하고 반복하는 것이다. printf("*(cp+%d) : %c\n", i, *(animal+ i)); // (animal+i)를 구한 후 1 증가 while (*(animal + i++) != 0); }
포인터(Pointer) 포인터 선언 참조법, 포인터 연산
변수의 주소 예 #include void main() { int days = 365; int month = 12; int Table[5] = { 1, 2, 3, 4, 5 }; printf("days 의 주소는 %x \n", &days); // dafde0 이런 식으로 주소값이 할당되고 실행 될 때마다 주소값이 달라진다. printf("month 의 주소는 %x \n", &month); printf("배열명 Table의 주소는 %x \n", Table); printf("배열명 Table의 첫번째 요소의 주소는 %x \n", &Table[0]); printf("배열명 Table의 세번째 요소의주소는 %x \n", &Table[3]); } 포인터 변수의 사용 예 #include void main() { int..
1,2,3 차원 배열과 char형 배열
1차원 배열의 사용 예 1 #include void main() { int array1[4] = { 10, 20, 30, 40 }; int array2[] = { 10, 20, 30, 40 }; int array3[4] = { 10 ,20 };// 10, 20, 0, 0 으로 출력 int array4[4] = {0};// 배열 값 전부가 0으로 출력 int i; for (i = 0; i