笔试题

用预处理指令#define声明一个常数,用来表示一年有多少秒?

#define SENCOND_PER_YEAR (365*24*60*60)UL

注意几件事情:
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
3). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要
这里写图片描述

1)一个参数既可以是const还可以是volatile吗?解释为什么。
1)是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。
这里写图片描述
2); 一个指针可以是volatile 吗?解释为什么。
是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。
static/const/volatile含义
这里写图片描述
C++中引用和指针的区别
这里写图片描述
置位,清零
//将对应的管脚设置为输出

unsigned long *gpc0_conf;
unsigned long *gpc0_data;

//将对应的管脚设置为输出
*gpc0_conf  &= ~(0xff<<12);
*gpc0_conf  |= 0x11<<12;


//亮灯
*gpc0_data |= 0x3<<3;
//灭灯
*gpc0_data  &= ~(0x3<<3);

这里写图片描述
a,int a;
b,int *a;
c,int * *a;
d,int a[10]
e,int *a[10]
f,int (*a)[10]
g,int (*a)(int a)
h,int(*a[10])(int a)
C++中引用与指针的区别
这里写图片描述

p1 = (unsigned char *) 0x801000;
p2 = (unsigned long *) 0x810000;

请问
p1+5 =
p2+5 =

p1+5=801005
p2+5=810014
解释:
p1=(unsigned char*)0x801000;
是给指针变量赋值,即把十六进制0x801000放到字符指针
变量中,即指针变量p1的值就是0x801000

p2=(unsigned long*)0x810000;也是给指针变量赋值,

输出结果p1+5的值是801005,因为指针变量指向的值字符,加一表示指针向后移动一个字节,那么加5代表向后移动5个字节,所以输入801005

p2+5的值是810014,因为指针变量指向的长整形的,加一表示指针向后移动4个字节,那么加5代表向后移动20个字节,所以输入810014,(输出时十六进制)要是十进制就是810020了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值