포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다.
가론
2023.04.01
질문 제목 : 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. 포인터 변수의 주소값을 더해서 포인터 변수에 대입하는 내용 같습니다.
질문 내용 :
아래는 질문 내용입니다.
const char *s;
const char *snew;
snew = s + strspn(s, ); //문자열 앞부분의 구분 문자를 제거하여 실제 문자열의 시작점을 설정한다.
strspn 함수는 s1을 기준으로 과 각 단어를 비교하여 왼쪽으로부터 오른쪽 방향으로 가 아닌 문자를 반환하는 string.h인데,
질문의 요지는
snew나 s나 포인터 변수이고 저런 식으로 사용하면 snew에 s와 strspn에서 s의 문자열 중 공백을 제외한 가장 첫번째 문자가 a라면
snew = s + a가 될텐데,
s와 a의 형은 모두 char형이며
s의 주소값을 더하는 것이므로
s와 a의 주소값 연산인 것 같은데
이 연산이 어떻게 이루어져 처리되는지 알고 싶습니다.
-
무리한
답변 정말 감사드립니다.
strspn 함수가 문자열의 길이를 숫자로 리턴하는군요.
s + 숫자는 현재의 주소에서 다음 주소로 포인터를 이동시키는 것이였는데 잊었군요.
종합적으로 생각해보면 수다님 말씀대로 되네요.ㅎㅎ