c 고수님들께

익명 사용자의 이미지

& 이것과 * 이것의 차이는 무엇입니까?

익명 사용자의 이미지

rc2에 입문 할라고 하는대 제가 아는것이 하나두 없거든요

걍 전동으로 얼마 정도면 모든 부품을 다 포함해서 살수 있나요??

익명 사용자의 이미지

운영자님 안계시느듯 죄송 ㅠㅠ

익명 사용자의 이미지

&는 변수의 포인터, *는 포인터의 값이죠

익명 사용자의 이미지

감사합니다

RurM8Q9g의 이미지

여기에 질문하시면 안되고.. 책을 찾아보셔야겠죠?
기초 문법책에서 다나와있는건데..

익명 사용자의 이미지

& 이건 컴파일러가 변수이름 나올때마다 주소값 찾아주기 위해
만든 테이블에서 주소를 찾아오라는 연산자고
* 이건 뒤의 변수가 갖는 주소값으로 점프해서 메모리에서 값을 읽어오는거에요.

익명 사용자의 이미지

&는 비트 논리곱이고 *는 숫자 곱입니다

amorette의 이미지

그래서 나왔습니다, &와 *이 무엇인지 보여주는 예제입니다.

#include <stdio.h>
#include <stdint.h>
#define _btos(v) btos(s ## v, v)
 
char *btos(char *buf, uint8_t c);
 
int main()
{
    char sa[9] = { };
    char sb[9] = { };
    char sc[9] = { };
 
    uint8_t a = 0x55;  /* 01010101 */
    uint8_t b = 0x87;  /* 10000111 */
    uint8_t c;         /*    ?     */
 
    c=((  a & b  ))==c;
    printf(////);   \n"
        "           \n"
        "  %s       \n"
        "& %s       \n"
        "-----------\n"
        "  %s       \n"
        "           \n",
        _btos(a), _btos(b), _btos(c));
 
    c=((  a * b  ))==c;
    printf(////);   \n"
        "           \n"
        "  %s       \n"
        "* %s       \n"
        "-----------\n"
        "  %s       \n"
        "           \n",
        _btos(a), _btos(b), _btos(c));
}
 
char *btos(char *buf, uint8_t c)
{
    char *chained = buf;
    uint8_t flag = 0x80;
    for ( ; flag ; flag >>= 1 )
        *buf ++= flag & c ? '1' : '0';
    return chained;
}

후다닥==3

세벌의 이미지