c笔记_0

int a;

这句声明会确定两个东西,内存大小,内存的分析方式。

内存大小:比如int一般占四个字节;

内存的分析方式:声明变量为 int 类型,意味着在对这段内存进行读取和写入操作时,会按照整数的方式来解析和处理这段内存。如果是float类型,就按照float的方式。计算机内部在处理这些不同类型数据时,是有各种不同的规则的。

指针变量的大小一定是系统位数这么大。

64位系统,指针就有64位,也就是8字节大小。32位系统,就是4字节大小。

因为指针就是地址,内存地址是多少位,指针就是多少位。

空指针

int *p;

声明了一个指针出来,那么总是的用它的,如果整个程序中都没写让它指向某个地址,

那么这个指针就是野指针。

int *a = NULL;

在声明时把NULL赋值给它,这个指针就是个空指针。

没有掌握指针的状态是一件很危险的事,使用指针时,野指针不一定会报错

但空指针会,这样就可以掌握指针的动向。

c语言的基本组成单位是函数。这句话基本正确。

运算符的结合性

  1. 从左到右的结合性:如果一个运算符是从左到右结合的,那么同级别的运算符将从左边开始依次计算。大多数运算符,比如加法(+)、减法(-)、乘法(*)和除法(/),都是从左到右结合的。例如,在表达式 a + b + c 中,首先计算 a + b,然后将结果与 c 相加。

  2. 从右到左的结合性:如果一个运算符是从右到左结合的,那么同级别的运算符将从右边开始依次计算。赋值运算符(=)和大多数单目运算符(如递增 ++、递减 --、逻辑非 ! 等)是从右到左结合的。例如,在表达式 a = b = c 中,首先计算 b = c,然后将这个结果赋给 a

x=(i=4,j=16,k=32);

查优先级表,逗号是从左往右,所以括号中的值最终为32。

int a = (1,2,3);
printf("%d\n", a);

会选取最后一个值,所以会输出3。

浮点数,.的前面或者后面什么也不写是合法的。

float a = .123;
float b = 123.;
//输出:
//123.000000
//0.123000

2e3这样的指数,e后面只能是整数,e前面也不能不写值。

const关键字,防卧龙凤雏神器。要清楚哪些量可改,哪些量不可改,比如函数的指针型参数,

很多时候就这样限制通过指针改数据。

int c = +001;

这样是允许的。

%p是输出地址的值,如果以%d去输出&a的话,有可能会导致错误。

你可能感兴趣的:(笔记)