안녕하세요!
아래의 코드처럼
일반 변수(int, char등)의 포인터는 값(ex. *cp)과 주소값(ex. cp)을 다르게 표현하는데,
char 배열(=string)의 포인터는 값(ex. sp)과 주소값(ex. sp)를 같게 표현하는 이유가 궁금합니다!
*sp로 쓰면 0번째 char의 값을 의미해서 안쓰는 건지..
string은 값도 되면서 동시에 char 배열의 첫번째 원소의 주소가 되는걸로 이해하면 되는건지..
같게 표현해도 혼란이 없는건지.. 궁금합니다!
#include <stdio.h> #include <cs50.h> int main(void){ char c='E'; char* cp=&c; printf("%c\n",*cp); //E printf("%p\n",cp); //0x ... string s="EMMA"; char* sp=s; printf("%s\n",sp); //EMMA //printf("%s\n",*sp); //이게 아닌 이유 //printf("%c\n",*sp); //E printf("%p\n",sp); //0x ... }
comment