포인터5 문자열 #include #include int main(void) { //문자열 //포인터 차이점 wchar_t swct[10] = L"abcdef"; //const wchar_t* wct = L"abcdef"; // 2byte로 읽어야하기때문에 무조건 const로 선언해줘야함 wchar_t* wct = (wchar_t*)L"abcdef";// (wchar_t* 로 강제형변환 가능하지만 문제발생) swct[1] = 'z'; //swct[10] 배열의 값이 바뀜 wct[1] = 'z'; //값이 변하지만 ROM에 설정된 값자체가 바뀌기때문에 큰 오류발생 //컴파일, 링크에서 문제가 안돼서 exe파일까지 만들어지지만 런타임 오류발생 return 0; } 2022. 7. 22. void 포인터 #include int main(void) { void* pVoid = nullptr; int* pInt = nullptr; { int a = 0; float f = 0.f; double d = 0.; long long ll = 0; pVoid = &a; pVoid = &f; pVoid = &d; pVoid = ≪ } return 0; } void* 의 특징 1. 원본의 자료형을 정하지 않음 2. 어떠한 타입의 변수의 주소든 다 저장 가능 ( 데이터의 원형을 특정한 자료형으로 보지 않기 때문) 3. 역참조 불가능 4. 주소 연산 불가능 2022. 7. 22. 정수배열과 포인터 2022. 7. 20. 포인터 2022. 7. 20. 문자열형 변수(char*) #include int main(void) { char string[30] = "개발자로 끊임없이 성장하자"; char *p = "I love coding"; printf("문자열형 변수 string = %s \n ", string); // %d로출력하면 string의 시작 주소 출력 printf("문자열형 변수 p = %s \n", p); // %d로 출력하면 p가 가리키고 있는 주소 출력 return 0; } 문자열을 정의하는 방법 = char [ ], char* 두가지의 차이점 string = 문자열 변수 p = 문자열 상수 ("I love coding")의 시작주소 문자열과 메모리의 구조 'I' ' ' 'l' 'o' 'v' 'e' ' ' 'c' 'o' 'd' 'i' 'n' 'g' '\0' ↑ ch.. 2022. 6. 30. 이전 1 다음