今天学到的新知识

1:左值:标识一个特定的位置的值才能作为左值。
2:判断表达式的长度不需要对表达式求值。
例如:sizeof(a=b+3)并没有向a赋值。
3:C语言并不具备布尔类型。
4:一些表达式也可以作为左值。
例如:a[i+10]=0;   
5:define
宏与替换的区别
宏有参数。
6:把宏插入字符串中的技巧:
①:利用字符串:
#include <stdio.h>
#define M 9
#define PRINT( FORMAT, VALUE ) printf("the value is " FORMAT" %d\n", VALUE)
int main()
{
int x;
PRINT("value",M);
return 0;
}
②:
#include <stdio.h>
#define M 9
#define PRINT( FORMAT, VALUE ) printf("the value of " #VALUE " is " FORMAT"\n",VALUE)
int main()
{
PRINT("%d", "M");
return 0;
}

7:malloc(动态分配内存函数)
原型:extern void *malloc(unsigned int num_bytes);


头文件:#include <malloc.h> 或 #include <stdlib.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)


功能:分配长度为num_bytes字节的内存块


说明: 如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。


再使用时应注意void* 类型可以强制转换为任何其它类型的指针。

当内存不再使用时,应使用free()函数将内存块释放。


总结:

malloc()函数其实就在内存中找一片指定大小的空间,然后将这个空间的首地址范围给一个指针变量,
这里的指针变量可以是一个单独的指针,也可以是一个数组的首地址,这要看malloc()函数中参数size的具体内容。
我们这里malloc分配的内存空间在逻辑上连续的,而在物理上可以连续也可以不连续。对于我们程序员来说,
我们关注的是逻辑上的连续,因为操作系统会帮我们安排内存分配,所以我们使用起来就可以当做是连续的。


 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值