C 프로그램 설계 Week10 강의 인스턴스
==[지침][강제 유형 전환] 두 가지 기술 또는 규칙을 사용했다==
==안에 있는 주소는 다시 써야 할 것 같다==
#include "stdio.h"
main(){
int a = 3;
*((int*)0X18FF44) = 8;
printf("%d
",a);
}
2 변수 review
==이 프로그램은 간단하지만 확실히 가장 이해해야 한다==
#include "stdio.h"
main(){
int a = 5;
printf(" a = %d
", a );
printf(" size of a is %d
", sizeof(a) );
printf(" address of a is 0x%x
", &a );
}
3개의 오류 프로그램
==왜 ==
#include "stdio.h"
void main(){
int * a;
*a = 10;
printf(" dereference of a is %d
",*a);
}
4수조의 다른 이해
== int a[4] ==
==a의 내용은 무엇입니까?a의 크기는 얼마입니까?
==진지하게 체득하다
#include "stdio.h"
void pz(int arr[]){
printf("size function: %d
",sizeof(arr));
}
void main(){
int a[]={1,2,3};
printf("a=0x%x
",a);
printf("sizeof a is %d
",sizeof(a));
pz(a);
}
5 포인터와 배열
==두 개의 지식점 [지침이 수조를 가리키는 것] [지침에 정수를 더하는 것] ==
#include "stdio.h"
#define SIZE 4
main(){
short index;
short dates[SIZE];
short *pti=dates; // pointer to integer
double bills[SIZE];
double *ptf=bills; // pointer to float
printf("%20s(%dB) %10s(%dB)
",
"short",sizeof(short),"double",sizeof(double));
for( index = 0 ; index < SIZE ; index ++ )
printf("pointers + %d: %10p %10p
",
index, pti+index, ptf+index );
}
또 다른 예
#include "stdio.h"
void main(){
int a[]={10,3,9,7};
for(int i=0;i<sizeof(a)/sizeof(int);i++)
printf("the value of a+%d : %d
",i,*(a+i));
int *pa1,*pa2,*pa3;
pa1 = a;
pa2 = a+2;
pa3 = &a[3];
printf("*pa1=%d,*pa2=%d,*pa3=%d
",*pa1,*pa2,*pa3);
printf("pa1=%p,pa2=%p,pa3=%p
",pa1,pa2,pa3);
printf("pa2-pa1 = %d
",pa2-pa1);
}
6 함수의 전송값, 전송 주소 이해
#include "stdio.h"
void change(int a){
a=2;
}
void main(){
int a=1;
change(a);
printf("a is %d
",a);
}
#include "stdio.h"
void change(int* pa){
*pa=2;
}
void main(){
int a = 1;
int* pa= &a;
change(pa);
printf("*pa is %d
",*pa);
}
7 함수의 매개 변수가 바늘이고 그룹이 될 때
#include "stdio.h"
void changeArray(int ar[]){
ar[1] = 88;
}
void changePointer(int *pa){
*(pa+2) = 101;
}
void main(){
int a[]={1,2,3};
changeArray(a);
changePointer(a);
for(int i=0;i<sizeof(a)/sizeof(int);i++)
printf("a[%d]=%d
",i,a[i]);
}
8 함수에 대한 포인터
#include "stdio.h"
void welcomeToBaoding(){
printf("welcome to Baoding
");
}
void welcomeToXiAn(){
printf("welcome to XiAn
");
}
void main(){
void (*welcome)();
welcome = welcomeToBaoding;
welcome();
welcome = welcomeToXiAn;
welcome();
}
9 포인터를 이용한 메모리 동적 할당
#include "stdio.h"
#include "stdlib.h"
void main(){
int length ,i;
int *p;
printf("input the num :");
scanf("%d",&length);
p = (int*) malloc(length*sizeof(int));
*p=1;
*(p+1)=1;
for(i =2;i<length;i++)
*(p+i) = *(p+i-2) + *(p+i-1);
for(i = 0;i<length;i++)
printf("fabonacci of %d is %d
",i,*(p+i));
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.