很多初学者反映“C语言指针很难学”,真的如此嘛?

本节引言:

在第五节的时候我们对C里的指针进行了初步的学习,而作为C语言的灵魂, 当然不会就那么简单,本节我们来进一步学习指针,包括:函数与指针, 指针数组,二级指针,内存的动态以及 const修饰指针。

本节学习路线图

1.函数与指针

1)指针作为函数的形参

2)指向函数的指针

3)指针函数

4)带参数的主函数

该程序需要用到命令行参数,需要先编译生成exe,然后cmd命令行来到生成的exe文件

所在目录下输入:文件名 one two three,结果会输出one two three。

想要了解更多、或者打算深入了解这个行业的小伙伴们,可以加下小编的C/C++游戏编程学习群:666+295+498,邀请码(怀念编程)不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴,学习更多C/C++相关知识也可以去公众号——“huainian_c”。

2.指针数组

问题引入:如何保存一个字符串更好?如果保存的不止一个,而是多个字符串呢?

问题一回答:

char name[20] = “~” char *name = “~” //前者定义了长度,不能直接赋值,明显后者比较灵活

问题二回答:

3.二级指针

代码示例:

动态分配10个int类型的空间大小,如果大于这个数目则动态分配,否则利用realloc

重新分配内存。

5.使用const修饰指针变量

const 关键字修饰的数据类型是指常类型,最简单的用法是用来定义const常量,具有不变性,比如int const a = 10; 要注意一点: const修饰的常量在声明的时候就要进行初始化赋值,不然后面是不能赋值的!

另外在与指针结合使用的时候,const 颠倒写 表示的意思是不一样的!

int const *a; //修饰指向的内容,a可变,a指向的内容不可变

int *const a; //修饰指针a,a不可变,a指向的内容可变

const int *a; //修饰指向的内容,a可变,a指向的内容不可变

const int *const A; //指针a和a指向的内容都不可变

上述结论可以自行修改下述例子里指针与指向的内容自行测试:

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180515A0VAB000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券