1.静态外部变量只在本文件内可用。
解:
在外部变量的定义前面加上关键字static,就表示定义了一个外部静态类。
外部静态变量具有全局的作用域和全局的生存期,定义成static类型的外部变量将无法再使用extern将其作用范围扩展到其他文件中,而是被限制在本身所在的文件内。
2. * p++表示: 自增p
解:后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, 因此p++ 和*(p++) 等价
3.以下程序:程序运行时出现错误
#include "stdio.h"
#include "string.h"
void fun( char *s)
{
char t[7];
s=t;
strcpy(s, "example");
}
int main()
{
char *s;
fun(s);
printf("%s",s);
return 0;
}
解:主函数里的s没有被初始化,即使初始化了,传到fun函数里,也会存在溢出的情况,程序终止。即使s初始化了,也不会输出"example",这只是值传递。
4.
#pragma comment。将一个注释记录放置到对象文件或可执行文件中。
#pragma pack。用来改变编译器的字节对齐方式。
#pragma code_seg。它能够设置程序中的函数在obj文件中所在的代码段。如果未指定参数,函数将放置在默认代码段.text中
#pragma once。保证所在文件只会被包含一次,它是基于磁盘文件的,而#ifndef则是基于宏的。
5.程序的输出是 22
void main (void) {
int i ;
i = 0x10+ 010+10;
printf (“x = %x”, i);
}
解:0x10表示16
010表示8
结果为 34
%x:十六进制输出