1.请问运行main函数有什么样的结果?
#include <stdio.h>
#include <stdlib.h>
char* getmemmory(void)
{
char p[]=“hello world”;
return p;
}
int main(int argc, char *argv[]) {
char * str=NULL;
str=getmemmory();
printf("%s",str);
return 0;
}
9 2 C:\Users\asus\Desktop\test\main.c [Warning] function returns address of local variable [-Wreturn-local-addr]
2.下面是32位的c程序,请计算结果。
int a[100];
sizeof(a)=___;
char array[20]=“hello world”;
sizeof(array)=;
strlen(array)=;
char p=(char)malloc(sizeof(char)*100);
sizeof§=__;
3.写出如下程序的运行结果
int main(int argc, char *argv[]) {
char *p1=“hello world”;
char p2;
p2=(char)malloc(20);
memset(p2,0,20);
printf("%s\n",p2);
while(*p2++ = *p1++);
printf("%s\n",p2);
return 0;
}
4.计算结果
int main(int argc, char *argv[]) {
int a,b,c,d;
a=10;
b=a++;//a=11,b=10;
c=++a;//c=12,a=12;
d=10*a+++b;//d=10*12+10=130;a=13,b=10;
printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
return 0;
}
结果:a=13,b=10,c=12,d=130;
5.const关键字的作用,如何理解
int main(int argc, char *argv[]) {
const int a=3;
printf("%d",a);
a=4;
printf("%d",a);
return 0;
}
以上代码编译时报错
int main(int argc, char *argv[]) {
const int a=3;
int *p =(int *)&a;
printf("%d\n",a);
*p=4;
printf("%d\n",a);
return 0;
}
结果:
3
4
const是只读的变量,编译时检查,只是告诉编译器是只读变量,该变量在内存中还是占用空间的,通过读写内存的方式还是可以修改它的值的。