- 0xFF bit5 清0 0xdf
0x80 bit2 置1 0x82
- 定义一个整数
Int a;
定义一个指向整数的指针:
Int *p1=&a;
定义一个指向指针的指针,它指向的指针指向一个整形数
Int*p1=&a;
Int**p2=&p1;
一个有10个整形数的数组:
Int a[10];
一个有10个指针的数组;该指针指向一个整形数:
Int *p1[10]=a;
一个指向有10个整形数数组的指针
Int (*p1)[10]=a;
3题
a= 182 b= 0 c= 65 d= 5 e= 5
4题
0123012346789
5题
Little Endian(小端模式):最低有效字节在前(地址最低),最高有效字节在后(地址最高)。在 little endian 模式下,A=0x87654321将被存储为:
地址0x00: 0x21
地址0x01: 0x43
地址0x02: 0x65
地址0x03: 0x87
Big Endian(大端模式):最高有效字节在前(地址最低),最低有效字节在后(地址最高)。在 big endian 模式下,A=0x87654321将被存储为:
地址0x00: 0x87
地址0x01: 0x65
地址0x02: 0x43
地址0x03: 0x21
6题
定义了一个字符变量 a,但没有初始化。这可能会导致不可预测的行为,因为没有为 a 分配任何值。
字符指针 str 指向变量 a,但没有为 a 分配内存。这意味着 str 会指向一个可能不存在的内存位置。
使用 strcpy 函数时,需要确保目标内存空间已经分配并且有足够的空间来存储源字符串。在这里,没有为 str 分配内存,所以这会导致错误。
printf 函数的参数应该是 const char*,但的 str 是一个非 const 字符指针,所以应该使用 %s 来打印字符串。
7题
#include <stdio.h>
#include <string.h>
int main() {
const char *str = "helloworld";
int length = strlen(str);
printf("Original String: %s\n", str);
printf("Reversed String: ");
for (int i = length - 1; i >= 0; i--) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
8题
9题
/usr目录:该目录是Linux系统中最重要的目录之一,系统默认的软件都会被放置在此目录下。它类似于Windows系统中的C:/windows或C:/Program file目录的结合体。该目录下放置的数据属于可分享,不可变动的。在/usr目录下,常见的子目录包括:
/usr/bin:绝大部分的用户可使用命令都放在这里。
/usr/lib:包含各应用软件的函数库、目标文件(object file),以及不被一般用户管用的执行文件或脚本(script)。
/usr/share/:放置共享文件的地方,这个目录下放置的数据几乎是不分硬件架构均可读取的数据,因为几乎都是文本文件。
/etc目录:该目录是配置文件目录,用于存放所有的系统管理所需要的配置文件和子目录。基本上硬件和软件配置文件都在此目录下,例如“/etc/passwd”是系统用户配置文件,“/etc/group”是用户组配置文件,“/etc/xinetd.conf”是xinetd服务的配置文件。通过编辑这些配置文件,就可以对系统进行更改和管理。
/dev目录:该目录是用于存储硬件设备信息的目录,dev是设备的英文device缩写,通过该目录可以直接访问硬件。该目录中并不是放的外部设备驱动程序,而是一个访问这些外部设备的端口,可以便捷的去访问这些外部设备。