☆ 배열과 포인터 예제 1
ㅇㅇ
#include <stdio.h>
void main()
{
int a[5]={3,10,25,30,40};
int *p;
p=a; // p=&a[0] 과 같음
*p=5;
*(p+1)=7;
p++; // p 시작주소를 1칸 이동
*(p+2)=15;
p+=2; // p 시작주소를 2칸 이동
*p=27;
for(int i=0;i<5;i++)
{
printf("a[%d] 의 주소 : %d,%d\n",i,&a[i],p+i);
}
for(i=0;i<5;i++)
{
printf("a[%d] 의 값 : %d,%d\n",i,a[i],*(p+i));
}
}
☆ 배열과 포인터 예제 2
#include <stdio.h>
#define MAX 5
void dataout(int *sp)
{
puts("점수 출력");
for(int i=0;i<MAX;i++)
{
//방법 1
//printf("점수 # %d : %d점\n",i+1,*(sp+i));
//방법 2
//printf("점수 # %d : %d점\n",i+1,*sp++);
//방법 3
printf("점수 # %d : %d점\n",i+1,sp[i]);
}
}
void datain(int *sp)
{
for(int i=0;i<MAX;i++)
{
printf("%d번째 점수 입력 : ",i+1);
scanf("%d",sp+i); // sp가 주소이므로 &는 안 쓴다
}
}
int getsum(int *sp)
{
int temp=0;
for(int i=0;i<MAX;i++)
{
temp+=*(sp+i); //포인터로 배열을 읽어 합계 구하기. sp[i]가 아님!
}
return temp; //값을 리턴하는 시점도 중요함. for문 안에 들어가면 안된다.
}
void main()
{
//int sc[MAX]={67,89,90,56,70};
int sc[MAX],sum;
datain(sc);
dataout(sc);
sum=getsum(sc);
printf("합계 : %d\n",sum);
}
☆ 배열과 포인터 예제 3
#include <stdio.h>
void write(char *s)
{
puts(s);
}
void strupr(char *s)
{
while(*s!='\0')
{
if(*s>='a' && *s<='z')
putchar(*s-32);
else
putchar(*s);
s++;
}
putchar('\n');
}
void strcat(char *a, char *b)
{
while(*a!='\0') // 문자열 a를 NULL문자가 나올 때까지 훑는다
a++; // *a를 써서 포인터로 받은 문자열 이름은 바로 배열의 첫째칸 변수이기도 하므로
바로 증가시킬 수 있다
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a=NULL;
}
void main()
{
char str[]="Have a nice day!!";
char a[20]="apple";
char b[]="banana";
write(str);
strupr(str);
write(str);
strcat(a,b);
write(a);
}
☆ C++에서만 사용할 수 있는 출력양식 (cin, cout)
#include <iostream.h>
#include <iomanip.h>
void main()
{
/*
int age=12;
char name[]="이미자";
double avg=98.7;
*/
int age;
char name[10];
double avg;
cout<<"이름 :";
// cin>>name;
cin.getline(name,10); // <-- 줄단위 입력 가능, 공백도 포함 가능
cout<<"나이 :";
cin>>age;
cout<<"평균 :";
cin>>avg;
// cout<<"이름, 나이, 평균의 순서로 입력하시오\n";
// cin>>name>>age>>avg;
cout<<"이 름 : "<<name<<endl;
cout<<"나 이 : "<<age<<"\n";
cout<<"평 균 : "<<avg<<endl;
cout<<"---------------------------------------------------\n";
cout<<setw(10)<<"이름"<<setw(10)<<"나이"
<<setw(10)<<"평균"<<endl;
cout<<setw(10)<<name<<setw(10)<<age
<<setw(10)<<avg<<endl;
}
ㅇㅇ
'기반지식 > C/C++' 카테고리의 다른 글
중앙정보학원 C/C++/OOP 강좌 13일차 - 2010년 6월 25일 (0) | 2010.06.25 |
---|---|
중앙정보학원 C/C++/OOP 강좌 12일차 - 2010년 6월 24일 (0) | 2010.06.24 |
중앙정보학원 C/C++/OOP 강좌 9일차 - 2010년 6월 21일 (0) | 2010.06.22 |
중앙정보학원 C/C++/OOP 강좌 9일차 - 2010년 6월 21일 (0) | 2010.06.21 |
중앙정보학원 C/C++/OOP 강좌 8일차 - 2010년 6월 16일 (0) | 2010.06.16 |