C语言学习笔记

指针

最常见得用途是 用来引用数据集合;

结构指针是一个数据结构的重要组成部分。

考虑把内存中一些元素组合起来形成链表
typedef struct ListElmt_{
    void 					*data;
    struct ListElmt_ 		*next;//结构不允许包含自身的实例,但允许包含指向自身实例的指针;
}listelemt;

数组

当一个数组标记符在表达式中出现时,C语言显然会把数组转化为一个指向数组第一个元素的固定指针;

数组引用指针引用
int f(){
int a[10], *p;
p=a;
p[0]=5;*p=5;
return 0;

二维数组

如果要访问一个二维数组如

a[i][j];

从指针的定义出发 这是一个指针嵌套;

a[0][0];  			//指针为 **a;
a[i][j];			//内层指针为行,外层指针为列  所以访问指针为    *(*(a+j)+j)

通过指针实现传参

void swap(int *n1,int *n2){
    int temp;
    temp=*n1;
    *n1=*n2;
    *n2=temp;
}

C语言中函数的执行方式

一个可执行程序由四个区域构成:

代码区运行时所执行的机器指令
静态数据区全局变量和静态局部变量
运行时动态分布的存储空间
保存调用的相关信息,每一次调用都被当做是活跃的输入参数;返回值空间;保存的状态信息;临时存储空间;输出参数。

栈是用来存储函数调用信息的绝好方案,这是由于栈后进先出的特点精确地满足了函数调用和返回顺序。其缺点是占用了相当大的空间。

如果想更好的使用栈来了实现递归,可以采用尾递归的方式来节省空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值