문자열3 Java의 메모리 구조_메소드의 매개변수 [3/3] 이전 글에서 8가지 원시타입의 변수를 제외한 모든 변수는 참조 변수라고 했습니다. 이 구조를 이해하면 메소드 사용 시 실수를 피할 수 있습니다. C언어를 해보신 분들은 C언어의 함수와 포인터와 동일한 원리라고 이해하시면 됩니다. 아래 코드를 보시고 결과를 한 번 예측해보세요. package study.first; /* Public class */ public class Main { public static void main(String[] args) { String arr = "Hello"; print(arr); System.out.println(arr); } static void print(String text) { text += " world"; } } 정답은 "Hello"만 출력됩니다. C언어의 포.. ▸JAVA/기본 상식 2019. 12. 9. atoi() 함수 없이 문자열의 숫자를 int타입으로 변환 아래와 같이 char 타입은 int 타입과 같이 바로 정수 계산이 됩니다. 정수형으로 데이터를 저장하기 때문에, 연산자 계산 시 int 타입 계산과 동일 정수형("%d")으로 출력하면 int형과 동일하게 출력됨 (다만 int타입은 4byte, char타입은 1byte) 문자형("%c")으로 출력하면, 저장하고 있는 정수가 표현하는 아스키코드상의 문자를 출력해줌 이러한 특성 때문에 char타입은 int타입과 동일하게 작동하고, 다만 1byte로 사이즈만 작다고 볼 수 있습니다. 하지만 문자열(String)에서는 아래와같이 다른 결과가 나옵니다. 숫자도 무조건 문자로 인식해서 아스키코드의 번호로 저장 (즉, '문자 1 == 아스키코드 49' 로 저장) 출력할때도 하나하나 아스키코드→문자열로 변환해서 .. ▸C언어/개발 TIP 2019. 12. 5. string.h_strcmp, strcnmp_문자열 비교 (구현식 포함) [ strcmp ] 문자열 비교 (대소문자 구분) 앞의 문자가 더 크면 1 값이 같으면 0 뒤의 문자가 더 크면 -1 [ strncmp ] 지정한 갯수만큼만 앞에서부터 비교 #include #include int main() { char str1[] = "abcdef"; char str2[] = "abcdaa"; char str3[] = "abcdzz"; char str4[] = "abcdef"; printf("%d ", strcmp(str1, str2));// 1 (앞의 문자가 더 큼) printf("%d ", strcmp(str1, str3));// -1 (뒤의 문자가 더 큼) printf("%d ", strcmp(str1, str4));// 0 (같음) printf("%d ", strncmp(st.. ▸C언어/기본함수 및 구현식 2019. 12. 5. 이전 1 다음 💲 추천 글 반응형