BLOG ARTICLE 분류 전체보기 | 197 ARTICLE FOUND
- 2006.07.18 06/07/15 수업내용
- 2006.07.18 06/07/14 숙제
- 2006.07.18 12장 내용정리문제
- 2006.07.17 02주차 한자시험
- 2006.07.14 수업내용
- 2006.07.14 숙제
- 2006.07.13 06/07/13 숙제
- 2006.07.13 수업내용
- 2006.07.13 자바반문제 C로 풀기 2탄 =.=
- 2006.07.12 06/07/12 숙제
- 2006.07.12 06/07/12 수업내용
- 2006.07.11 06/07/11 숙제
- 2006.07.11 06/07/11 수업내용
- 2006.07.10 06/07/10 숙제
- 2006.07.10 008 한자시험
엔터가 10?
apple
grape
banana
kiwi
strawberry
엔터 입력시 입력끝
배열에 한단어에 한줄씩 인쇄
출력은 알파벳순으로 정렬
2. 로또
3. 달력
int ary[5]={10,20,30,40,50};
ary[0]=..
*(&ary[0]+0) -> 100
*(&ary[0]+1) -> 104 -> &ary[0]+(1*sizeof(int))
*(&ary[0]+0) = 10;
*(&ary[0]+1) = 20;
*(&ary[0]+2) = 30;
*(&ary[0]+3) = 40;
*(&ary[0]+4) = 50;
*(ary+0)=10;
*(ary+1)=20;
*(ary+2)=30;
*(ary+3)=40;
*(ary+4)=50;
//포인터 표현
ary[0]=10;
ary[1]=20;
ary[2]=30;
ary[3]=40;
ary[4]=50;
//배열표현
포인터간의 연산
&ary[3]-&ary[0] =12
12/4(단위크기)=3
//두 포인터간 거리를 의미
scanf("%d",&ap[i]);
&ap[i] -> &*(ap+i) -> ap+i //로 쓰는것이 바람직
#include <stdio.h>
int main()
{
char startA='A', alpha;
int i,j,k;
for(i=0;i<=26;i++)
{
if(i<13)
{
alpha=startA+i;
for(k=0;k<i;k++)
{
printf(" ");
}
for(j=i;j<26-i;j++)
{
printf("%c",alpha);
alpha++;
}
printf("\n");
}
else if(i==13||i==14)
{
alpha++;
}
else if(i>14)
{
for(k=0;k<26-i;k++)
{
printf(" ");
}
alpha=startA+26-i;
for(j=26-i;j<i;j++)
{
printf("%c",alpha);
alpha++;
}
printf("\n");
}
}
*&a=10;
*:참조연산자//선언시에만 사용
&:주소연산자
int a=0;
int *ap;//포인터변수..
double *dp;
ap=&a;
dp=ap; //불가.. 형식이 다르므로..
//호출은& 받기는* 활용은 그냥??
#include <stdio.h>
/*void swap(int *ap, int *bp)
{
int temp;
temp=*ap;
*ap=*bp;
*bp=temp;
}
*/
input_data(int *ap, int *bp)
{
printf("넣어:");
scanf("%d%d",ap,bp);
}
int main()
{
int a, b;
input_data(&a,&b);
printf("%d\t%d\n",a,b);
return 0;
}
int a;
int *ap=&a;
혹은 int *ap; ap=&a;
*ap=10;//정상
scanf("%d",*ap);// X
scanf("%d",ap);// O
배열
참조의 뜻
기억공간이 된다,Lvalue
그 기억공간의 값,Rvalue
b=a
L=R
int a=10, b;
int *ip=&a;
b=*ip;
*ip=20;
printf("%d",a);
a++=10; //불가 Lvalue가 값이 되어버리므로
배열의 기능
int ary[5]={10,20};//나머지는 0으로 매핑됨
int ary[5]={0,};//0으로 초기화하겠다.
int ary[]={10,20,30,40,50};//유동적
size=sizeof(ary)/sizeof(ary[0]);
for(i=0;i<size;i++)
{
}
printf + %s는 for+ printf + %c 이다.
scanf함수는 마지막에 널문자를 할당해준다.(배열에서%S문자사용시만)
하나씩 넣을때는 마지막에 널을 입력해주지않으면 =.= 안좋음
널문자 자리가 없다면??//에러나가 나거나 쓰레기값이 나옴
char str[500]={'L','O','V','E','\0'};
//나머지는 아스키 코드0으로 채워짐
int를 char로 변환시 모듈러 오퍼레이션때문에 3바이트가 사라짐
int 4바이트 char 1바이트
char str[500]="LOVE";//로도 표현가능
\0//숨어있음
//따라서 5바이트
str="money";
//일단 입력된 문자열은 수정하기 까다롭다
//하나씩 입력..=.= 좌절
//포인터는 입력가능
char*sp="LOVE";
sp="money";