常量存储

1.0万 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
C语言学习者,开发者,嵌入式工程师
你将会学到
彻底学习C程序中各种类型的数据存储和C指针,对C指针的各种基础概念“拨乱反正”,重新正确认识C指针。熟练学习C指针的各种使用方法及注意事项。
课程简介

指针是C语言中最难理解和最难学习的一个知识点,再加上C指针往往跟数组、结构体、函数混在一起,暧昧不清,使得C指针的使用更加困难和棘手。很多C语言学习者、研发者往往“望指兴叹”:为了减少出错,能不用坚决不用。但C指针作为C语言最精华的一部分,不使用C指针如何编写一个高效高质量的程序呢?

本期课程为《C语言嵌入式Linux高级编程》第6期,从一个全新的视角:数据存储的角度,去重新解析C指针。存储才是C语言的精髓在存储面前,一切指针、链表、函数、变量都是浮云。抛开各种类型数据、函数、数据结构的表象,理解他们在内存中的存储才是我们理解C指针的关键。

本期课程从存储的角度,由浅入深,层层递进,一步一步去探讨讲解C指针,重点学习:指针的基本概念、如何使用指针去操作变量、数组、结构体、函数。各种类型的指针作为函数参数时,如何使用,如何解析等等。学习完本教程,预期会解开了心中很多疑惑,比如:

1)为什么计算机使用补码存储数据?为什么补码设计为反码+1?

2)一个字一定占4个字节吗?这是由谁决定的?

3)为什么会有大端模式、小端模式?

4)为什么很多地方会使用size_t这种数据类型?

5)变量和变量名的本质是什么?

6)指针和地址是一个概念吗?指针是什么类型?

7)int (*f)(int *p, int, int (*fp)(int*,int));你能分析出来吗?有没有好用的方法?

8)如何快速记住运算符的优先级?

9)为什么指针可以使用[]访问数组?

10)为什么数组可以使用间接访问符:*来访问数组?

11)数组名是一个常量指针吗?

12)二级指针主要用在什么地方?可以使用二级指针操作二级数组吗?

13)void *你会用吗?

展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交