C 언어 면접 문제 1
2628 단어 필기시험
static int a=1;
void fun1(void) {a=2;}
void fun2(void){ int a=3;}
void fun3(void){ static int a=4;}
int main()
{
printf("%d",a);
fun1();
printf("%d",a);
fun2();
printf("%d",a);
fun3();
printf("%d",a);
}
해석: 본 문제에서 조사한 정적 국부 변수는 함수에 대해서만 항상 볼 수 있으며 함수체가 실행된 후에도 존재하지만 다른 printf('%d', a)로 전역 정적 변수를 출력할 수 없기 때문에 1fun1()를 출력합니다.a=2로 전역 정적 변수를 수정하고 2fun2()를 출력합니다.inta=3,fun2의 국부 변수이기 때문에 호출이 끝나면 방출되고 전체 국면의 a값에 영향을 주지 않기 때문에 2fun3()를 출력합니다.또한 국부 변수이다. 비록 정적이지만 전체 국면의 a값에 영향을 주지 않는다. 던져서 2를 출력하기 때문에 마지막 결과는 1,2,2이다.
2. 다음 코드의 출력 결과는 무엇입니까?
#include
char *mystring();
”{ char buffer[6]={0};
char *s="Hello world!";
for(int i=0;i<sizeof(buffer)-1;i++)
{ buffer[i]=*(s+i);
}
return buffer;
}
int main( int argc,char **argv)
{printf("%s
",mystring());
return 0;
}
해석: 함수char*mystring () 에서 new나malloc를 사용하여 메모리를 분배하지 않았기 때문에 버퍼 그룹의 메모리 구역은 창고 구역에 있습니다.char*mystring () 가 끝나면 창고 메모리가 방출되고 문자 그룹도 존재하지 않습니다. 야외 바늘이 생겨서 출력 결과가 알 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾다제목: 두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾아 되돌려 달라고 한다. 알고리즘 사상: 이 문제의 관건은 모든 노드에 부모 노드를 가리키는 바늘을 포함하는 데 있다. 이로써 프로그램은 간단한 알고리즘...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.