검색결과 리스트
c언어에 해당되는 글 15건
- 2011.10.12 Point?!
- 2011.08.17 typedef
- 2011.08.17 구조체와 포인터
- 2011.08.17 구조체와 배열
- 2011.08.17 구조체
- 2011.08.17 Call by Referance
- 2011.08.17 Call by Address
- 2011.08.17 Call By Value
- 2011.08.17 다중포인터
- 2011.08.16 다차원 배열(이차원배열)
글
Point 란 번지. 포인터변수란 포인터를 저장할수 있는 변수 = 메모리의 특정위치를 저장
int *imsip; 의 정의는 imsip에 번지를 저장할수 있다는 뜻.
&연산자가 특정변수의 선두번지를 뜻한다면, *연산자는 그반대.
포인터변수에 저장된 선두번지를 참조하여 하나의값을 취함.
*imsip =1000; //imsip가 가르키는곳에 1000을 대입.
└→ imsip가 가르키는곳이 정확히 명시되어야함.
-Point는 형구별없이 무조건 4byte!
설정
트랙백
댓글
글
#include<stdio.h>
void main()
{
typedef int_var;
int a=100;
int_var b=200;
printf("%d %d \n",a,b);
}
*typedef 실행시 그다음부터는 int형 자료형을 사용할때 int_var이라는 병명을 사용해서 선언가능.
◎구조체에 적용
typedef struct student {
int id;
char name[20];
int kor,eng,math;
char address[100];
}People;
void main()
{
People ST, *p;
p= &ST;
.
.
.
}
People → 별명으로 선언
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
구조체와 포인터 (0) | 2011.08.17 |
---|---|
구조체와 배열 (0) | 2011.08.17 |
구조체 (0) | 2011.08.17 |
Call by Referance (0) | 2011.08.17 |
Call by Address (0) | 2011.08.17 |
설정
트랙백
댓글
글
{
p= &ST;
printf("학번입력");
scanf("%d"&p->id);
printf("이름입력");
scanf("%s",&p->name);
printft("국,영,수 입력");
scanf("%d %d %d",&p->kor,&p->eng,&p->math);
printft("집주소");
scanf("%s",&p->address);
printf("학번: %d", p->id);
printf("이름:%s", p->name);
printf("국,영,수 성적: %d %d %d",p->kor, p->eng, p->math);
printf("집주소:%s",p->address);
※scanf("%s",p->name); → 띄어쓰기로 공백입력시 null값으로 인식, 띄어쓰기 전까지만 기억함
gets(p->name); → 한번만입력했는데 enter키가 자동으로 들어감 gets() 전에 scanf로
입력받을때 enter키가 버퍼에 남아있어서 gets()가 받아서 name에 넣어버림
getch(p->name); → enter값을 받아서 저장도안하고 사라짐
⊙해결방법: 버퍼 초기화 fflush(stdin);
- fflush(stdin);
gets(p->name);
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
typedef (0) | 2011.08.17 |
---|---|
구조체와 배열 (0) | 2011.08.17 |
구조체 (0) | 2011.08.17 |
Call by Referance (0) | 2011.08.17 |
Call by Address (0) | 2011.08.17 |
설정
트랙백
댓글
글
struct student{
int id;
char name[20];
int eng,kor,math;
char address[100];
};
void main()
{
struct student ST[2]= {{201154321,"hong gil dong",90,91,92."서울 강남구 대치동"},
{201112345,"kang gil dong",98,80,86,"서울 종로구 혜화동"}};
for(int i=0; i<2; i++)
{
printf("ST구조체의 크기: %d \n",sizeof(ST));
printf("ST학번: %d" ,ST[i].id);
printf("ST이름: %s" ,ST[i].name);
.
.
.
}
*scnaf("%d",&ST.id) ← 로값을 입력받을수 있음.
ST.id= 12345 형식으로 값직접대입가능.
구조체의 크기는 136
136byte 가 2개선언 →ST[0] , ST[1]
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
typedef (0) | 2011.08.17 |
---|---|
구조체와 포인터 (0) | 2011.08.17 |
구조체 (0) | 2011.08.17 |
Call by Referance (0) | 2011.08.17 |
Call by Address (0) | 2011.08.17 |
설정
트랙백
댓글
글
구조체란?
사용자가 직접 자료형을 만들어서 사용하는것!
사용자가 직접 자료형을 만들어서 사용하는것!
사용법 ex)
struct 구조체{ struct my_spec{
자료형 변수 ; int tall;
}; int age;
char name[20];
};
struct 구조체{ struct my_spec{
자료형 변수 ; int tall;
}; int age;
char name[20];
};
위의 ex) 와같이 선언후
struct my_spec A; → int 형 2개 char 형 한개를 묶어서 my_spec라는 자료형 A를 만듦.
A.tall = Value;
#include<stdio.h>
struct student{
int id;
char name[20];
int kor,eng,math;
char address[100];
};
void main()
{
struct student ST= {201154321, "hong gil dong", 90,91,92,"서울 강남구 대치동"
};
printf("ST구조체의 크기 : %d \n" sizeof(ST));
printf("ST의 학번 : %d \n",ST.id);
printf("ST의 이름: %s \n",ST.name);
printf("ST의 성적(국,영,수):%d %d %d \n",ST.kor,ST.engm,ST.math);
printft("ST의 주소:%s \n",ST.address);
}
*구조체를 정의하고 main에서 구조체 자료형(student)을 ST라는 변수로 선언.
초기화는 구조체 타입에 정의한순서대로 (int, char,int,int,int,char)
printf문에서 ST.id → 구조체의 접근은 .(마침표)로 접근
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
구조체와 포인터 (0) | 2011.08.17 |
---|---|
구조체와 배열 (0) | 2011.08.17 |
Call by Referance (0) | 2011.08.17 |
Call by Address (0) | 2011.08.17 |
Call By Value (0) | 2011.08.17 |
설정
트랙백
댓글
글
Call by Referance란? 전달인자에 별명을 붙여줌.
ex) void main()
{
int name=10;
int &nick= name;
}
※swap함수를 부를때 별명으로 &imsi_x, &imsi_y를 만듦.
#include<stdio.h>
void swap(int &imsi_x, &imsi_y);
void main()
{
int x=10, y=20;
printf("함수 호출전 x=%d y=%d",x,y);
swap(x,y);
printf("함수호출후 x=%d y=%d",x,y);
}
void swap(int &imsi_x, int &imsi_y)
{
int temp=0;
temp = imsi_x;
imsi_x = imsi_y;
imsi_y = temp;
printf("함수안의 imsi_x = %d imsi_y = %d",imsi_x,imsi_y);
}
첫번째 main x=10, y=20
두번째 swap x=20, y=10
세번째 main x=20, y=10
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
구조체와 배열 (0) | 2011.08.17 |
---|---|
구조체 (0) | 2011.08.17 |
Call by Address (0) | 2011.08.17 |
Call By Value (0) | 2011.08.17 |
다중포인터 (0) | 2011.08.17 |
설정
트랙백
댓글
글
Call by Address란? 주소를 넘겨주는 방식
void swap(int *imsi_x, int *imsi_y);
int main()
{
int x=10, y=20;
printf("함수호출전 x= %d y=%d",x,y);
swap(&x,&y);
printf("함수호출후 x=%d y=%d",x,y);
}
void swap(int *imsi_x, int imsi_y)
{
int temp=0;
temp= *imsi_x;
*imsi_x = *imsi_y;
*imsi_y = temp;
printf("swap 함수안 imsi_x=%d , imsi_y=%d",imsi_x,imsi_y);
}
첫번째 main x=10, y=20
두번째 swap x=20, y=10
세번째 main x=20, y=10
*주소를 직접참조하여 값이 변경가능
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
구조체 (0) | 2011.08.17 |
---|---|
Call by Referance (0) | 2011.08.17 |
Call By Value (0) | 2011.08.17 |
다중포인터 (0) | 2011.08.17 |
다차원 배열(이차원배열) (0) | 2011.08.16 |
설정
트랙백
댓글
글
Call By Value 란? 함수에 값을 넘겨줌(복사값을 전달함으로 원본값이 변하지않음)
단점: 값을 넘겨줄때마다 고비용. 복사손실 단점
void swap(int imsi_x, int imsi_y);
void main()
{
int x=10, y=20;
printf("함수호출전 x= %d, y=%d", x,y);
swap(x,y);
printf("함수호출후 x=%d, y=%d, x,y);
}
void swap(int imsi_x, int imsi_y)
{
int temp =0;
temp = imsi_x;
imsi_x = imsi_y;
imsi_y= temp;
printf("swap 함수안의 imsi_x = %d, imsi_y= %d", imsi_x,imsi_y);
}
첫번째 main 함수출력값: 10,20
두번째 swap 함수출력값: 20,10
세번째 main 함수출력값: 10,20
*swap 함수가 실행될때 main함수에선 10과 20이라는 값이 복사되어 넘어감.
swap함수가 끝나고 main함수로 돌아왔을때 값이 바뀌지 않음.
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
Call by Referance (0) | 2011.08.17 |
---|---|
Call by Address (0) | 2011.08.17 |
다중포인터 (0) | 2011.08.17 |
다차원 배열(이차원배열) (0) | 2011.08.16 |
배열 and 포인터 (0) | 2011.08.16 |
설정
트랙백
댓글
글
다중포인터란? 포인터 변수의 주소를 담고 있는 포인터
*(참조연산자)만큼 참조 연산이 일어나면서 접근함
int **pp : 이중포인터
int ***ppp : 삼중포인터
#include<stdio.h>
void main()
{
char arr[4][10] = {"Dog","Cat","Monkey",Mouse"};
char (*p)[10];
int i=0;
p=arr;
for(i=0; i<4; i++)
{
printf("배열 포인터 p+ %d = %s 주소: %d \n",i,p+i,p+i);
}
printf("\n");
for(i=0; i<4; i++)
{
printf("이차원배열 arr + %d \ %s 주소: %d \n",i,arr+i,arr+i);
}
}
*(참조연산자)만큼 참조 연산이 일어나면서 접근함
int **pp : 이중포인터
int ***ppp : 삼중포인터
void main()
{
char arr[4][10] = {"Dog","Cat","Monkey",Mouse"};
char (*p)[10];
int i=0;
p=arr;
for(i=0; i<4; i++)
{
printf("배열 포인터 p+ %d = %s 주소: %d \n",i,p+i,p+i);
}
printf("\n");
for(i=0; i<4; i++)
{
printf("이차원배열 arr + %d \ %s 주소: %d \n",i,arr+i,arr+i);
}
}
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
Call by Address (0) | 2011.08.17 |
---|---|
Call By Value (0) | 2011.08.17 |
다차원 배열(이차원배열) (0) | 2011.08.16 |
배열 and 포인터 (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
설정
트랙백
댓글
글
#include<stdio.h>
void main()
{
int i=0, j=0;
int num[3][3] = {1,2,3,4,5,6,7,8,9};
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("num[%d][%d]=%d", i,j,num[i][j]);
}
printf(""\n");
}
}
*num 이라는 배열은 3개의 12바이트 공간을 한개의 요소로 갖는 일차원 배열.
num[0]을 배열이름이라고 생각하고, 변수 3개를 갖는다고 생각하면됨.
● num = &num[0] = &num[0][0] = 0000
num1 = &num[1] = &num[1][0] = 0012
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
Call By Value (0) | 2011.08.17 |
---|---|
다중포인터 (0) | 2011.08.17 |
배열 and 포인터 (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
변수의 공간할당 (0) | 2011.08.16 |
RECENT COMMENT