C语言-05指针、指针与一维数组、动态内存申请

目录

1.指针的本质

2.指针的传递

3.指针的偏移

4.指针与自增自减运算符

5.指针与一维数组

6.指针与动态内存申请

7.栈空间与堆空间的差异

8.字符指针和字符数组的初始化

9.二级指针的偏移


1.指针的本质

*p(取值:加指针变量 p就是变量名)

2.指针的传递

字符型传递:就是把一个变量的值传递给对应的子函数

char c[]:C是一个字符数组,但是编译器给c 内部存了一个值,C里面存的值得类型是字符指针

3.指针的偏移

#include<stdio.h>

int main()
{
    int a[5]={1,2,3,4,5};
    int *p=0x0075F7CC;
    p=a;
    printf("*p=%d\n",*p);
    for(int i=1;i<6;i++)
    {
       printf("%d\n",*p(p+i));
    }
    return 0;
}

4.指针与自增自减运算符

5.指针与一维数组

数组名作为实参传递给函数时,是弱化为指针的

6.指针与动态内存申请

即malloc函数

关于malloc函数的书写语法?如下:

char *p;

p=(char*)malloc(i); //申请的空间内存是动态的

 

 (注意:申请的单位是字节)

7.栈空间与堆空间的差异

能不能够自动释放(栈空间会,堆空间不会)以及自动申请内存空间的差异(栈空间申请多大的空间是固定的,而堆空间是动态内存申请malloc)

 

 

8.字符指针和字符数组的初始化

char *p="happy";

char p[10]=“hello”;

 

9.二级指针的偏移

类似于“一级指针的偏移”可以先暂时忽略

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值