数组不是指针

指针与数组 通过数组下标所能完成的任何操作都可以通过指针来实现。一般来说,用指针编写的程序比用数组下标编写的程序执行速度快,但另一方面,用指针实现的程序理解起来稍微困难一些。 声明一个数组 int a[10]; 定义一个长度为10的数组a。换句话说,它定 ......

左值与右值

左值与右值? 左值(L-value)与右值(R-value),二者之间的区别是什么? 左值与右值 01 这两个术语是多年前由编译器设计者所创造并沿用至今的,尽管它们的定义并不与C语言严格吻合。 02 左值就是那些可以出现在赋值符号左边的东西;右值就是那些可 ......

更好的使用结构体

结构体与指针 在C语言中,指针可以指向万物,自然也少不了结构体。 使用结构体指针,有4点好处: 就像指向数组的指针比数组本身更容易操控一样,指向结构的指针通常比结构本身更容易操控 在早期的C中,结构不能作为参数传递给函数,但是可以传递指向结构的指针 即使 ......

结构体

引子 设计程序时,最重要的步骤之一就是选择表示数据的方法。在许多情况下,简单变量甚至是数组还不够。为此,C提供了结构变量(structure variable)提高表示数据的能力,它能够创造新的形式。 建立结构体声明 小栗子 需求:需要打印一份图书目录。里 ......

c语言与动态内存

前言 在C语言中,除了获取变量的指针这种规矩的内存空间,我们还可以通过函数去申请指定大小的内存空间 动态 malloc malloc可以申请一块任意尺寸的空间,因为经常一段空间是连续的 #include <stdio.h> #include & ......

[头脑风暴]指针与函数还能擦出怎样的火花

Q 有一个名为selectMode的函数,它本身有一个char类型的参数,返回值是一个函数指针。这个函数指针也有两个参数,并且返回值类型为整形 int *fp(int, int) selectMode(char); 想法很好,但是编译器却一点都看不懂,因 ......