C11节:动态分配内存,二级指针,sizeof

指针是用来存储地址数据的变量
NULL表示空地址
记录无效地址的指针变量叫做野指针

指针可以参与如下数学计算
指针 + 整数,指针 - 整数,指针 - 指针
以上计算中所有整数都是有单位的,单位由指针的类型决定

静态局部变量的地址可以作为函数的返回值来使用

数组做函数形参时计算机内部使用指针替代它

对数组使用sizeof关键字计算的结果是整个数组的大小
对指针使用sizeof关键字计算的结果是指针变量本身的大小

数组名称取地址后得到的结果地址不变,但是级别和二维数组名称一致
指针变量本身的地址和它内部记录的地址无关

const声明的指针可以避免修改对应的普通变量
const关键字不安全

void*类型指针没有指定地址数据的来源
指针类型的指针必须先进行类型转换然后才能使用

类型转换分成隐式类型转换和强制类型转换
隐式类型转换由计算机自动完成
转换过程中会生成新变量,其中的二进制内容是从原变量中的二进制内容变化得到的。
强制类型转换有可能造成数据丢失

malloc函数可以从堆中分配多个连续的字节并把第一个字节的地址当成返回值
需要包含stdlib.h头文件
malloc函数失败则返回NULL
堆中变量的首地址一旦丢失则变量无法使用也无法释放

/*
    malloc练习
*/
#include <stdio.h>
#include <stdlib.h>
int main() {
    int * p_value = (int *)malloc(3 * sizeof(int));
    if (p_value) {
        //...
        int *p_temp = p_value;
        int pos = 0;
        for (pos = 0;pos <= 2;pos++) {
            *p_temp = pos + 1;
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值