Go语言基础之指针 区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 Go语言中的指针 Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数 ...
分类:
编程语言 时间:
2019-08-21 00:37:06
阅读次数:
105
项目的完整代码在 "C2j Compiler" 前言 有关符号表的文件都在symboltable包里 前面我们通过完成一个LALR(1)有限状态自动机和一个reduce信息来构建了一个语法解析表,正式完成了C语言的语法解析。接下来就是进入语义分析部分,和在第二篇提到的一样,语义分析的主要任务就是生成 ...
分类:
其他好文 时间:
2019-08-18 21:27:51
阅读次数:
181
区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 Go语言中的指针 Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无须拷 ...
分类:
编程语言 时间:
2019-08-13 22:30:53
阅读次数:
99
第17课 - 继承与多态 - 上 引入: 如果子类定义了与父类中原型相同的函数会发生什么? 1. 函数重写 在子类中定义与父类中原型相同的函数,函数重写只发生在父类与子类之间。 父类中被重写的函数依然会继承给子类,默认情况下子类中重写的函数将隐藏父类中的函数,通过作用域分辨符::可以访问到父类中被隐 ...
分类:
编程语言 时间:
2019-08-11 21:32:05
阅读次数:
123
C/C++函数参数传递方式有三种,值传递,地址传递,引用传递。 值传递 函数形参拷贝实参的值,在函数内部参与运算,返回后不改变原实参的值。 形式如下: 地址传递 函数形参为指针类型,存放实参的地址,形参指向实参,在函数内部参与运算,两者的值同步改变。 形式如下: 引用传递 注意: 引用传递在C中不可 ...
分类:
其他好文 时间:
2019-08-10 19:47:08
阅读次数:
93
&a返回的是一个地址(也可以称为指针)该指针类型与a的数据类型一致 要取出该值 必须告诉计算机这是一个地址要用这个地址去取出值 *(&a) 用于取出该地址对应的内存地址的值 ...
分类:
其他好文 时间:
2019-08-08 13:24:51
阅读次数:
67
Go结构体 结构体是将多个容易类型的命令变量组合在一起的聚合数据类型。 每个变量都成为该结构体的成员变量。 可以理解为Go语言的结构体struct和其他语言的class有相等的地位,但是Go语言放弃大量面向对象的特性,所有的Go语言类型除了指针类型外,都可以有自己的方法,提高了可扩展性。 案例: 成 ...
分类:
其他好文 时间:
2019-08-07 19:07:37
阅读次数:
96
Go 指针 指针在Go其实也就是一个变量,用于存储另一个变量的内存地址。 一个指针变量可以指向任何一个值得内存地址,在32位机器上占用4个字节,在64位机器上占用8个字节,并且与它所指向的值得大小无关。当然,可以声明指针指向任何类型的值来表明它的原始性或结构性;你可以在指针类型前面加上 号(前缀)来 ...
分类:
其他好文 时间:
2019-08-07 18:56:51
阅读次数:
93
在一个名为 test.dll 文件中,有一个 Max() 函数的定义是: 当我在c程序中,定了一个函数指针类型为: int (*func)(int, int) 时 调用这个函数 func(1,2) 后, windows 并不会马上报错,当程序退出时 windows 会报错: 如果函数指针在定义的时候 ...
分类:
其他好文 时间:
2019-08-07 13:23:39
阅读次数:
160
指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。 假设有一个 int 类型的变量 a,p1是指向 a 的指针变量 ...
分类:
其他好文 时间:
2019-08-04 19:18:07
阅读次数:
116