您的位置:首页 > 编程语言 > C语言/C++

php程序员学C/C++之学习系列-【C基础】

2014-06-03 19:17 302 查看
其实 语言的大多数地方时想通的,再加上PHP是由C写的,所以我们要学写C很容易

其实一门语言说来说去就是那些东西,对于C来说

数据类型

基本数据类型short、int、long、char、float、double

构造类型 数组 结构体struct 联合体union 枚举enum

指针

空类型 void



语法:

控制语句

跳转语句

循环

编程范式

内置函数

动态分配内存

数据结构和算法

以上难点在什么地方呢 是在指针的操作和内存管理。注意:不是说指针的含义很难 ,指针的定义很简单。

定义:指针是一种数据类型,与其它的数据类型不同的是指针是一种“用来存放地址值的”变量

这个很容易理解 指针是数据类型

int 是用来表示值是整数值的变量

* 是用来表示值是地址值的变量

为什么都说指针难 其实难的不是指针 而是指针背后的东西 数据结构和算法 以及汇编

汇编 让你理解指针的原理

数据结构和算法让你学习指针的用法

这也是我通过自学的情况下理解的 我自学了汇编 把操作系统和计算机组成原理页啃了一遍 所以从原理上对指针的理解更直观

我现在正在学习数据结构和算法(在学习数据结构和算法的时候 其实都是为节省更少的空间和时间来出发的 就牵涉到内存的管理)

我数学不是很好 不过我不是说想去自己写一个操作系统 自己写一个编译器 我只是想通过学习C|C++ 能去更深入的理解PHP和网络编程

所以在我目标明确的情况下 我就不存在惧怕 或者 认为自己基础不好而不迈出自己去探索更深的东西的接口

下列的事指针的表现形式

1,一个整形数: int a;

2,一个指向整形数的指针: int *a;

3,一个指向指针的指针,它指向的指针指向一个整形数: int **a;

4,一个有10个整形数的数组: int a[10];

5,一个有10个指针的数组,每个指针指向一个整形数: int *a[10];

6,一个指向有10个整形数的数组的指针: int (*a)[10];

7,一个指向指针的指针,被指向的指针指向一个有10个整形数的数组: int (**a)[10];

8,一个指向数组的指针,该数组有10个整形指针: int *(*a)[10];

9,一个指向函数的指针,该函数有一个整形参数并返回一个整形数: int (*a)(int);

10,一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整形数: int (*a[10])(int);

11,一个函数的指针,指向的函数的类型是有两个整形参数并且返回一个函数指针的函数,返回的函数指针指向有一个整形参数且返回整形数的函数: int (*(*a)(int,int))(int);

需要区分的几个有关指针的问题:

1.const指针与指向const的指针

1)const 指针:指针是const,

比如:int * const x;

表示指针不能修改,不能指向其他对象,但是指针所指向的地址的值可以修改;

2) 指向const的指针:指针指向const对象

比如:const int *x;

或:int const *x;

表示指针可以指向其他对象,但指针所指的当前对象的值不可以修改。

2.函数指针与函数返回指针

1)函数指针:指向函数的指针

比如:int (*p)(int x, int y);

表示p为一个指针,指向函数的首地址;

2)函数返回指针:函数的返回值为指针类型

比如:int *p(int x, int y);

表示该函数返回值为指针类型。

3.数组指针与指针数组

1)数组指针:指向数组的指针

比如:int (*p)[10];

表示一个指针,指向具有10个整形元素的一维数组;

2)指针数组:数组元素为指针的数组

比如:int *p[10];

表示一个一维数组,元素均为整形指针。

这里给个链接 也是一个自学C的哥们写的学习计划,觉得还不错:

/article/2031494.html

再说一次:

我们学习东西,一定要有目的去学习,因为现在是信息大爆炸时代,我们总感觉自己需要学习的东西太多,没有目的或者目标的话,你总觉得自己还有好多东西不会,总觉得自己是个菜鸟,这样会让自己缺乏信心和学习的动力,所以带着目标去学习吧,骚年,学东西,不在多而在专,迟早我们也是某一领域的大牛!

内置函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐