C语言随堂笔记-4

至LESSON24

 

float a = 5 / 2;

此时a为2.000...

float a = 5 / 2.0;

那么a为2.50000...

 

int array[10] = { 0 };

第一个元素 array[0] 被显式初始化为 0

其余9个元素 会自动被初始化为 0(这是C语言的规则)

 

int a = (c = 2, b = 3, 1);

从左到右计算 最后一个表达式的结果是整个表达式的值。

 

所有局部变量其实都是auto变量

 

[]在访问过程中是操作符 为双目 arr[10] 操作数为arr 和 10

在定义过程中不得用变量 此时[]不是操作符

 

image

 

image

 

image

 函数的static情况类似于变量。

 

register int a = 3; //建议3放入寄存器中

 

define:

1.定义标识符常量

2.定义宏

#define ADD(a,b) ((a) + (b))

直接调用即可:

int a = ADD( 3 , 4);

 

#define ADD(a,b) ((a) + (b))
#include <stdio.h>
int main() {
printf("%d",ADD(3, 4));
}

 

image

 

 

image

有2的32次方种的地址 每个地址对应着一个内存单元 一个内存单元1Byte 所以计算下来32位的机器最多可以管理4G的内存

 

image

 

image

 

指针变量的类型指的是 地址下所对应元素的类型

image

 四个地址 对应 四个字节:0a 00 00 00

一位十六进制字符对应四位的二进制字符(8421)

这里就有8x4=32位的二进制 也就是4个字节 这些都是牢牢对应的 也就是说一个地址 一个字节 两个十六进制位

image

 指针是用来存放地址的,地址的大小取决于机器是32位or64位,一个地址64位那么就是8个字节 。

 

image

 

解引用操作符的优先级低于成员成员访问运算符,故要用(*p).age 或更优的替代 p->age

-> 左边是结构体指针变量  右边是成员名

%p是专用来打印地址的

 

image

这是typedef的常见用法 也就是起别名 typedef 本名 现有名

define不是关键字  是预处理指令

 

else和上一个if匹配 而不是看语句对齐的情况。

posted @ 2025-12-26 14:39  Nowasiki  阅读(2)  评论(0)    收藏  举报