三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量). 指针指向的对象是常量,那么这个对象不能被更改. 在C/C++中,常量指针是这样声明的: 1)const int *p; 2)int const *p; 常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也…
成员数组和指针是我们c语言中一个非常重要的知识点,记得以前在大学时老师一直要我们做这类的练习了,但是最的还是忘记了,今天来恶补一下.     单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如下.我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章. 为了方便你把代码copy过去编译和调试,我把代码列在下面:  代码如下 复制代码 #incl…
与其说指针是一种工具,不如先说指针是一种数据类型. -------------------------------------------------------------华丽的分割线----------------------------------------------- 指针是什么呢?指针是一种数据类型. 首先,我们先这样 int a; int *b; a是一个int型变量,对吧?那类比一下,b是个int *型变量对吧? 我们换一种说法:b是一个int型指针 其中*是标识符  下面我们…
最近遇到了,以此做个记录. 条件编译 是C预处理部分的内容. 其判断语句包括 #if  #else if  #else 以及 #ifdef 和 #endif. 使用 #if (表达式) codes1... #else codes2.... #endif 表达式为真 编译codes1:否则编译表达式codes2. #ifdef X codes #endif 不管表达式真假,只要在程序前的宏定义有定义“X”就编译codes.…
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这个内存地址可能保存者一个基本数值. 指针变量也是有类型的.它需要知道自己保存的内存地址指向数值的类型,因为不同的数值类型占用的空间大小是不同的. 在指针中有两个重要的符号需要了解: &和. 其中&是用于获取普通变量的地址,而是获取内存地址指向的数值.看起来就是一对反向操作. 另外在声明指针时也…
Go语言学习笔记三: 常量 定义常量 常量就是在声明后不能再修改的量. const x int = 100 const y string = "abc" const z = "abc" 看上去与变量的定义差不多,就是把var变成了const关键字. 枚举 const ( Yellow = 1 Red = 2 Blue = 3 ) 特殊常量iota 这个iota非常奇葩,从0开始,每次使用一次就自动增加一.例如: const ( a = iota b = iota c…
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var a = 10` `a := 10` (推荐写法) 注意::= 左侧的变量不能是被声明过的 4.定义常量:const关键字定义常量 5.以大写字母开头的常量在包外可见 6.Go语言内置的数据类型: 布尔型 bool 整形 int8.int16 浮点型 float32.64 复数 complex64 字…
Go语言学习笔记这一堆主要是<Go语言编程>(人民邮电出版社)的读书笔记.中间会穿插一些零碎的点,比如源码学习之类的.大概就是这样吧. 1. 顺序编程 1.1 变量 变量的声明: var 变量名 类型 var v1 int 也可以把若干变量的声明用大括号括起来 var { v1 int v2 string } 变量初始化: 变量的初始化可以用如下的方法: var v1 int = 10 var v2 = 10 v3 := 10 这三种方法的效果大体上是一样的.需要注意的有:第三种方法不能用于声…
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面写上所有的成员变量,并且指定这些变量的类型.访问这些内部成员时使用.符号.注意是结构体创建的变量,才能用点访问内部成员. 不是直接用结构体访问. package main import "fmt" type Book struct { name string price int } fun…
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types] { 函数体 } 举个例子: /* 函数返回两个数的最大值 */ func max(num1, num2 int) int { /* 声明局部变量 */ var result int if (num1 > num2) { result = num1 } else { result = num2 }…