#include void print(char **strs) {} int main(int ac, char **av) { **av = *av[] char *strs[] = { "hi", "god", "bye" }; char **strs = { }; char *dest; char dest1[30] = {'a', 'b', 'c'}; // 얘는 수정됨 dest1[1] = 'c' 배열의 인덱스를 수정할 수 있음 dest1이 가리키는건 'a'가 있는 주소 char *dest2 = "abc" // 얘는 수정안됨 dest2[1] = 'b' 배열의 인덱스에 접근만 가능 dest2가 가리키는건 abc라는 문자열을 담은 공간의 주소 배열로 선언을하면 배열길이만큼 그 주소값에 값을 계쏙 바꿀 수 있음 **dest1; 얘는 문자열의 배열, 포인터를 담는 포인터 *src; char ch = 'a'; src = &ch; src는 ch의 주소를 갖고 있고 *src = 'a' dest = &src; dest는 src의 주소를 갖고 있고 *dest = src; *dest는 s"> #include void print(char **strs) {} int main(int ac, char **av) { **av = *av[] char *strs[] = { "hi", "god", "bye" }; char **strs = { }; char *dest; char dest1[30] = {'a', 'b', 'c'}; // 얘는 수정됨 dest1[1] = 'c' 배열의 인덱스를 수정할 수 있음 dest1이 가리키는건 'a'가 있는 주소 char *dest2 = "abc" // 얘는 수정안됨 dest2[1] = 'b' 배열의 인덱스에 접근만 가능 dest2가 가리키는건 abc라는 문자열을 담은 공간의 주소 배열로 선언을하면 배열길이만큼 그 주소값에 값을 계쏙 바꿀 수 있음 **dest1; 얘는 문자열의 배열, 포인터를 담는 포인터 *src; char ch = 'a'; src = &ch; src는 ch의 주소를 갖고 있고 *src = 'a' dest = &src; dest는 src의 주소를 갖고 있고 *dest = src; *dest는 s"> #include void print(char **strs) {} int main(int ac, char **av) { **av = *av[] char *strs[] = { "hi", "god", "bye" }; char **strs = { }; char *dest; char dest1[30] = {'a', 'b', 'c'}; // 얘는 수정됨 dest1[1] = 'c' 배열의 인덱스를 수정할 수 있음 dest1이 가리키는건 'a'가 있는 주소 char *dest2 = "abc" // 얘는 수정안됨 dest2[1] = 'b' 배열의 인덱스에 접근만 가능 dest2가 가리키는건 abc라는 문자열을 담은 공간의 주소 배열로 선언을하면 배열길이만큼 그 주소값에 값을 계쏙 바꿀 수 있음 **dest1; 얘는 문자열의 배열, 포인터를 담는 포인터 *src; char ch = 'a'; src = &ch; src는 ch의 주소를 갖고 있고 *src = 'a' dest = &src; dest는 src의 주소를 갖고 있고 *dest = src; *dest는 s">
/******************************************************************************

                            Online C Compiler.
                Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/
#include <unistd.h>
#include <stdio.h>

void print(char **strs)
{}

int main(int ac, char **av)
{
    **av = *av[]
    char *strs[] = { "hi", "god", "bye" };
    char **strs = { };
    char *dest;
   
    char dest1[30] = {'a', 'b', 'c'}; // 얘는 수정됨 dest1[1] = 'c' 배열의 인덱스를 수정할 수 있음
    dest1이 가리키는건 'a'가 있는 주소
    char *dest2 = "abc" // 얘는 수정안됨    dest2[1] = 'b'  배열의 인덱스에 접근만 가능
     dest2가 가리키는건 abc라는 문자열을 담은 공간의 주소
    
    배열로 선언을하면 배열길이만큼 그 주소값에 값을 계쏙 바꿀 수 있음

    **dest1; 얘는 문자열의 배열, 포인터를 담는 포인터
    *src;
    char ch = 'a';
    src = &ch;  src는 ch의 주소를 갖고 있고 *src = 'a'
    dest = &src;  dest는 src의 주소를 갖고 있고 
    *dest = src;  *dest는 src가 담고 있는 주주소를
   
    **dest = *src; **dest는 src가 갖고 있는 주소가 가리키는 값
    
    *dest2[]; 얘도 문자열의 배열
    { 
       0 "abcde",
       1 "edfge",
       2 "dfwt" 
        
    }
    
    dest3[][]; 얘는 2차원 배열
    {
        0 { 'a', 'b', 'c'},
        1 { 'd', 'd', 't'}
    }
    
    그런데 포인터로 선언을하면 주소값 하나만 담을 수 있음
}