1
#include<iostream.h>
int a,b,c,d,e;
a=b=c=d=e=1;
void main()
{
int a,b,c,d,e;
a=b=c=d=e=1;
cout<<a<<b<<c<<d<<e;
}
全局变量必须在定义时初始化。
2
main()
{
char *c1 = "abc";
char c2[] = "abc";
char *c3 = ( char* )malloc(3);
c3 = "abc";
printf("%d %d %s\n",&c1,c1,c1);
printf("%d %d %s\n",&c2,c2,c2);
printf("%d %d %s\n",&c3,c3,c3);
getchar();
}
1、输出地址,似乎用%d不太好!!
2、c3是一个指针,开始malloc让其指向一个地址,后来又指向另一个地址;
3、"abc"是一个常量,在.data区有一个地址,这样c1和c3都指向同一个地址;
3
a.c
int x=100;
main()
{
foo();
printf("x=%d\n", x);
return 0;
}
b.c
int x;
void foo()
{
x=200;
}
这个例子中,main中的x是强符号,因为它被初始化了,放在.data区,foo中的x是弱符号,因为了它没有被赋值,被放在了.bss区