C语言复习 day01
梦开始的地方
点击查看代码
#include <stdio.h> //标准输入输出头文件,包含printf()函数
int main(void) {
printf("Hello, world.\n");
return 0;
}
Q1:在C语言中,32位操作系统和64位系统的区别?
-
指针大小:32位操作系统寻址范围是\(2^{32}\),因此一个指针大小是4字节;64位则是8字节。
-
数据类型
- int:为了向下兼容,64位系统的int类型也是4字节。
- long:32位系统是4字节,64位则是8字节,这是主要区别。
- long long都是8字节,short都是2字节。
| 32位 | 64位 | |
|---|---|---|
| char | 1字节 | 1字节 |
| short | 2字节 | 2字节 |
| int | 4字节 | 4字节 |
| long | 4字节 | 8字节 |
| long long | 8字节 | 8字节 |
| float | 4字节 | 4字节 |
| double | 8字节 | 8字节 |
| long double | 8字节 | 16字节 |
| size_t | 4字节 | 8字节 |
| ssize_t | 4字节 | 8字节 |
暂时还不清楚size_t和ssize_t这两个数据类型是干嘛的,标记。
C 存储类
auto 存储类
auto只能修饰局部变量,局部变量默认是auto存储类。
定义在函数体中的局部变量,在函数开始时被创建,在函数结束时被销毁。
register 存储类
定义存储在寄存器中的局部变量(可能存储在寄存器中,取决于实现)。
不能对它用\(&\),因为它没有内存位置。
static 存储类
在程序中只初始化一次,该变量会一直存在。
extern 存储类
使用extern,不会为变量分配内存,而是告诉编译器,这个变量已经在别的文件定义好了,你去找吧。
C运算符
关系运算符
!= 、>=、<=
位运算符
| 位运算符 | 功能 |
|---|---|
| & | 逻辑与 |
| | | 逻辑或 |
| ~ | 逻辑非 |
| ^ | 逻辑异或 |
| 《 | 逻辑左移,高位丢弃,低位补0 |
| 》 | 逻辑右移,高位补符号位,低位丢弃 |
sizeof()运算符返回一个变量所占的字节数。
*是指针运算符,int *a表示a指向一个数据类型为int的对象。
记住,赋值运算符优先级最低。
OK,今天暂时看到这里。

浙公网安备 33010602011771号