검색결과 리스트
C에 해당되는 글 16건
- 2011.08.16 다차원 배열(이차원배열)
- 2011.08.16 배열 and 포인터
- 2011.08.16 포인터
- 2011.08.16 변수의 공간할당
- 2011.08.16 배열(문자)
- 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 |
설정
트랙백
댓글
글
void main()
{
int arr[5]={1,2,3,4,5}'
int i=0;
for(i=0; i<5; i++) for(i=0; i<5, i++)
{ 동일코드 {
printf("%d",arr[i]); 〓 printf("%d",*(arr+i));
} }
printf("\n");
}
※배열이름은 배열의 첫번째 주소를 가지고있다.(포인터상수)
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다중포인터 (0) | 2011.08.17 |
---|---|
다차원 배열(이차원배열) (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
변수의 공간할당 (0) | 2011.08.16 |
배열(문자) (0) | 2011.08.16 |
설정
트랙백
댓글
글
포인터란? 주소 그자체
①포인터는 메모리의 번지 주소.
②포인터 변수 메모리의 주소를 가지는 변수.
③포인터 변수의 크기는 4Byte 의 부호없는 정수형
◎포인터연산자
① &(주소연산자)는 변수의 메모리 주소를 표현해주는 연산자.
② *(참조자) 는 주소를 이용하여 변수값을 접근하는 연산자.
#include <stdio.h>
void main()
{
int number =100;
int *p;
p= &number;
printf("p =%d \n",p);
printf("*p = %d \n",*p);
}
《p= &number》
→p는 포인터 변수로 number의 주소값을 가지고 있다.
p라는 포인터 변수가 가지는 값을 주소로 보고, 그값(number의 주소)을 참조해서 해당주소의
실제값을 출력.
printf에서 *p라는 참조연산자를 실행한값은 p라는 퐁인터변수가 가지는 값을 주소로 보고 그값(주소)을
참조하여 한번더 들어간다는 뜻.
즉, number값은 100 p값은 0000 이라는 number의 주소값
&number값은 0000(주소) &p값은 0004 라는 포인터 변수의 p값
*p값은 0000 이라는 p값의 데이터를 참조해서 찾아간 number의 값
#include <stdio.h>
void main()
{
char *p = "string";
while (*p)
{
printf("%c,%d \n",*p,p);
p++;
}
}
p[]로 사용하던것을 *p로 선언!
while문에서 *p의 마지막인 Null값을 만나면 종료.
포인트 변수에 +1
*scanf로 받을시
#include<stdio.h> #include<stdio.h>
void main() void main()
①포인터는 메모리의 번지 주소.
②포인터 변수 메모리의 주소를 가지는 변수.
③포인터 변수의 크기는 4Byte 의 부호없는 정수형
◎포인터연산자
① &(주소연산자)는 변수의 메모리 주소를 표현해주는 연산자.
② *(참조자) 는 주소를 이용하여 변수값을 접근하는 연산자.
#include <stdio.h>
void main()
{
int number =100;
int *p;
p= &number;
printf("p =%d \n",p);
printf("*p = %d \n",*p);
}
《p= &number》
→p는 포인터 변수로 number의 주소값을 가지고 있다.
p라는 포인터 변수가 가지는 값을 주소로 보고, 그값(number의 주소)을 참조해서 해당주소의
실제값을 출력.
printf에서 *p라는 참조연산자를 실행한값은 p라는 퐁인터변수가 가지는 값을 주소로 보고 그값(주소)을
참조하여 한번더 들어간다는 뜻.
즉, number값은 100 p값은 0000 이라는 number의 주소값
&number값은 0000(주소) &p값은 0004 라는 포인터 변수의 p값
*p값은 0000 이라는 p값의 데이터를 참조해서 찾아간 number의 값
#include <stdio.h>
void main()
{
char *p = "string";
while (*p)
{
printf("%c,%d \n",*p,p);
p++;
}
}
p[]로 사용하던것을 *p로 선언!
while문에서 *p의 마지막인 Null값을 만나면 종료.
포인트 변수에 +1
#include<stdio.h> #include<stdio.h>
void main() void main()
{ (수정code) {
char *p; → char *p,arr[10];
scanf("%s",p); scanf("%s",arr);
printf("%s",p); p=arr;
} printf("%s",p);
}
《p=arr;》→배열의 이름(첫번째주소값)을 p에대입.
char *p; → char *p,arr[10];
scanf("%s",p); scanf("%s",arr);
printf("%s",p); p=arr;
} printf("%s",p);
}
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다차원 배열(이차원배열) (0) | 2011.08.16 |
---|---|
배열 and 포인터 (0) | 2011.08.16 |
변수의 공간할당 (0) | 2011.08.16 |
배열(문자) (0) | 2011.08.16 |
배열(숫자) (0) | 2011.08.16 |
설정
트랙백
댓글
글
int arr[4] = {10,16,17,19};
int A=32;
int B=31;
int C=63;
↑메모리 할당 그림으로 표시
↑표로표시
pritnf ("%d",A) ← 0100 주소에 있는 값출력
printf("%d",arr[3]) ← 0012 주소에 있는 값출력
⊙배열 이름은 배열의 첫번째 주소를 가지고있다!
char arr[] = "test";
printf("%d",arr[3]);
*arr[0+2] → 's'가있는 공간 0002에 접근
int A=32;
int B=31;
int C=63;
주소 | 값 | |
arr[0] | 0000 | 10 |
arr[1] | 0004 | 16 |
arr[2] | 0008 | 17 |
arr[3] | 0012 | 19 |
A | 0100 | 32 |
B | 0124 | 31 |
C | 0088 | 63 |
pritnf ("%d",A) ← 0100 주소에 있는 값출력
printf("%d",arr[3]) ← 0012 주소에 있는 값출력
⊙배열 이름은 배열의 첫번째 주소를 가지고있다!
char arr[] = "test";
printf("%d",arr[3]);
*arr[0+2] → 's'가있는 공간 0002에 접근
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다차원 배열(이차원배열) (0) | 2011.08.16 |
---|---|
배열 and 포인터 (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
배열(문자) (0) | 2011.08.16 |
배열(숫자) (0) | 2011.08.16 |
설정
트랙백
댓글
글
"TEST 문자열"
#include <stdio.h>
void main()
{
char arr[4] = {'T','E','S','T'};
int i=0;
for ( i=0; i<4; i++)
{
printf("%c",arr[i]);
}
}
※char arr[4] ="TEST"; 로 초기화시 문자열의 마지막에 \0 즉, Null 의 값이 들어감.
<Null 값이 들어있지않을시에 Null값을 만날때까지 쓰레기값을 출력한다.>
그래서char arr[4] ="TEST";
char arr[5] ="TEST"; 로 바꿔야함
*배열의 크기를 잡지않고 arr[]을 쓰면 자동으로 크기가 할당됨.
#include <stdio.h>
void main()
{
char arr[4] = {'T','E','S','T'};
int i=0;
for ( i=0; i<4; i++)
{
printf("%c",arr[i]);
}
}
변수 | arr[0] | arr[1] | arr[2] | arr[3] |
값 | 'T' | 'E' | 'S' | 'T' |
※char arr[4] ="TEST"; 로 초기화시 문자열의 마지막에 \0 즉, Null 의 값이 들어감.
<Null 값이 들어있지않을시에 Null값을 만날때까지 쓰레기값을 출력한다.>
그래서
char arr[5] ="TEST"; 로 바꿔야함
*배열의 크기를 잡지않고 arr[]을 쓰면 자동으로 크기가 할당됨.
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다차원 배열(이차원배열) (0) | 2011.08.16 |
---|---|
배열 and 포인터 (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
변수의 공간할당 (0) | 2011.08.16 |
배열(숫자) (0) | 2011.08.16 |
설정
트랙백
댓글
글
DataType 배열이름[크기];
#include<stdio.h>
{ int arr[5] = {1.2,3,4,5}
printf("arr = %d \n",arr[4]);
}
*선언시
※특징
1. 배열은 [0] 부터 시작
2. 배열크기는 선언할때 메모리상 공간을 할당받기 때문에 프로그램도중에 크기를 변경할수 없다.
3. 배열의 이름은 배열의 첫번째 주소를 가지고 있다 (포인터상수)
#include <stdio.h>
void main()
{
int i = 0, sum = 0, english[10] = {};
for(i=0; i<10; i++)
{
printf("%d번의 영어 점수를 입력하세요:",i+1");
scanf("%d",&english[i]);
}
printf("\n");
for(i=0; i<10; i++)
sum += english[i];
printf("10명의 영어점수 총합은 %d",sum);
}
#include<stdio.h>
{ int arr[5] = {1.2,3,4,5}
printf("arr = %d \n",arr[4]);
}
*선언시
변수 | arr[0] | arr[1] | arr[2] | arr[3] | arr[4] |
값 | 1 | 2 | 3 | 4 | 5 |
※특징
1. 배열은 [0] 부터 시작
2. 배열크기는 선언할때 메모리상 공간을 할당받기 때문에 프로그램도중에 크기를 변경할수 없다.
3. 배열의 이름은 배열의 첫번째 주소를 가지고 있다 (포인터상수)
#include <stdio.h>
void main()
{
int i = 0, sum = 0, english[10] = {};
for(i=0; i<10; i++)
{
printf("%d번의 영어 점수를 입력하세요:",i+1");
scanf("%d",&english[i]);
}
printf("\n");
for(i=0; i<10; i++)
sum += english[i];
printf("10명의 영어점수 총합은 %d",sum);
}
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다차원 배열(이차원배열) (0) | 2011.08.16 |
---|---|
배열 and 포인터 (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
변수의 공간할당 (0) | 2011.08.16 |
배열(문자) (0) | 2011.08.16 |
RECENT COMMENT