由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Military版 - 不掌握指针就是没掌握C的精华
进入Military版参与讨论
1 (共1页)
l******e
发帖数: 172
1
这是谭老师说过的一句名言。
g***n
发帖数: 14250
2
没被指针艹过屁眼的都不是好程序猿
P**T
发帖数: 2274
3
很多人都掌握不了指针
JAVA取消了指针,学的人就多了
C*****4
发帖数: 8585
4
指针有啥难的,我唯一得优的编程作业就是指针
c****o
发帖数: 32446
5
指针的指针
m*******0
发帖数: 19
6
无法理解,指针有什么难度,为什么掌握不了。

【在 P**T 的大作中提到】
: 很多人都掌握不了指针
: JAVA取消了指针,学的人就多了

p***r
发帖数: 4702
7
尼玛Java 全是指针。其实是取消了非指针

【在 P**T 的大作中提到】
: 很多人都掌握不了指针
: JAVA取消了指针,学的人就多了

n**d
发帖数: 9764
8
这么说话等于抬杠。
你咋不说都是汇编呢?

【在 p***r 的大作中提到】
: 尼玛Java 全是指针。其实是取消了非指针
P**T
发帖数: 2274
9
单指针很简单,但双指针或三指针作为argument就让很多人迷糊了
其实也不难,自己多玩几次就懂了

【在 C*****4 的大作中提到】
: 指针有啥难的,我唯一得优的编程作业就是指针
n**d
发帖数: 9764
10
当然不是
r*****n
发帖数: 1
11
You almost right,
Shitcoin is based on the list pointer pointing to the next node/block/hash
with merkle tree for mining proof...
p***r
发帖数: 4702
12
那你在Java栈上开个object 呗

【在 n**d 的大作中提到】
: 这么说话等于抬杠。
: 你咋不说都是汇编呢?

c****o
发帖数: 32446
13
指针是堆栈?
这个脸丢的比较大哦……
P**T
发帖数: 2274
14
感觉Python才是这样
所以纯码农不喜欢Python,因为自己掌握指针可以为所欲为

【在 p***r 的大作中提到】
: 尼玛Java 全是指针。其实是取消了非指针
g***n
发帖数: 14250
15
指针就是机器码
d******r
发帖数: 16947
16
不掌握指针连矩阵参数都传不了

【在 l******e 的大作中提到】
: 这是谭老师说过的一句名言。
g***n
发帖数: 14250
17
大妈继续

memory
d******r
发帖数: 16947
18
使用者不用自己弄指针,后台帮你弄好了

【在 p***r 的大作中提到】
: 尼玛Java 全是指针。其实是取消了非指针
l********e
发帖数: 3986
19
Java不是取消指针,而是彻底指针化,指针是default。除了primitive variable
types, 所有val都是指针变量。

【在 P**T 的大作中提到】
: 很多人都掌握不了指针
: JAVA取消了指针,学的人就多了

n**d
发帖数: 9764
20
开就开呗,根本不需要知道是不是什么针。
还不需要去关。

【在 p***r 的大作中提到】
: 那你在Java栈上开个object 呗
t**8
发帖数: 4527
21
应该说对硬件的直接操作
指针只是个例,
用地址访问内存
除了内存
计算机好有诸多的硬件要访问啊

【在 l******e 的大作中提到】
: 这是谭老师说过的一句名言。
g***n
发帖数: 14250
22
艹,不能加减,能叫指针?

【在 l********e 的大作中提到】
: Java不是取消指针,而是彻底指针化,指针是default。除了primitive variable
: types, 所有val都是指针变量。

P**T
发帖数: 2274
23
Windows化的结果,Python更是进一步
同样纯种码农喜欢用Linux,而不是Windows

【在 l********e 的大作中提到】
: Java不是取消指针,而是彻底指针化,指针是default。除了primitive variable
: types, 所有val都是指针变量。

w***u
发帖数: 17713
24
尼玛,如果你们用过有十几种寻址方式的专用芯片写汇编,就知道c的指针太简单了。
n**d
发帖数: 9764
25
对个屁
C*****4
发帖数: 8585
26
现在完全忘了,记得是做书上一道根据银行客户办事窗口有几个,客户进银行随机排队
办事花费时间的模拟计算题


: 单指针很简单,但双指针或三指针作为argument就让很多人迷糊了

: 其实也不难,自己多玩几次就懂了



【在 P**T 的大作中提到】
: Windows化的结果,Python更是进一步
: 同样纯种码农喜欢用Linux,而不是Windows

l********e
发帖数: 3986
27
写个class operator methods有很高难度吗?

【在 g***n 的大作中提到】
: 艹,不能加减,能叫指针?
g***n
发帖数: 14250
28
你翻了天也没法写到别人的地盘去,
能叫指针吗

【在 l********e 的大作中提到】
: 写个class operator methods有很高难度吗?
n**d
发帖数: 9764
29
这个需要有空间或抽象想象力,不是谁都能掌握的,特别地歧视妇女,属于歧视性语言。

【在 P**T 的大作中提到】
: 单指针很简单,但双指针或三指针作为argument就让很多人迷糊了
: 其实也不难,自己多玩几次就懂了

e********2
发帖数: 495
30
class layout, virtual pointer,

【在 l******e 的大作中提到】
: 这是谭老师说过的一句名言。
P**T
发帖数: 2274
31
纯码农一切都融会贯通,就像武侠小说中的武林绝顶高手,已经是无招胜有招
而大多数人都要去Github那里抄袭构架,让后再改几个variables
我弟的纯码农很多都是老白皮,现在也越来越少了

【在 C*****4 的大作中提到】
: 现在完全忘了,记得是做书上一道根据银行客户办事窗口有几个,客户进银行随机排队
: 办事花费时间的模拟计算题
:
:
: 单指针很简单,但双指针或三指针作为argument就让很多人迷糊了
:
: 其实也不难,自己多玩几次就懂了
:

c****o
发帖数: 32446
32
double list
你到底学没学过数据结构?是马工吗?
e********2
发帖数: 495
33
从sub-object的指针找outter object的指针,C有一个function,忘记啥了,觉得很奇
妙。

【在 d******r 的大作中提到】
: 使用者不用自己弄指针,后台帮你弄好了
P**T
发帖数: 2274
34
这些对纯码农来说就是手到擒来
而我记得以前上大学的时候有个三哥博士生助教都整不明白array double pointer

言。

【在 n**d 的大作中提到】
: 这个需要有空间或抽象想象力,不是谁都能掌握的,特别地歧视妇女,属于歧视性语言。
f********g
发帖数: 32
35
Java 其实用另一种方法实现了指针
只不过不象c那样允许随意对内存操作

【在 P**T 的大作中提到】
: 很多人都掌握不了指针
: JAVA取消了指针,学的人就多了

P**T
发帖数: 2274
36
框架受限制了,纯码农不喜欢受限制
普通人用起来更简单
P**T
发帖数: 2274
37
C对火候不够的人用不好会出岔子
Java这方面就安全多了

【在 f********g 的大作中提到】
: Java 其实用另一种方法实现了指针
: 只不过不象c那样允许随意对内存操作

l********e
发帖数: 3986
38
你用C指针也是虚地址。从386开始,全域物理实地址系统根本不支持。
你大概是个半路出家的马公。或者是软了吧唧的课程训练出来的。有空再好好钻研钻研
体系结构,那对你了解程序运行有很大帮助。

【在 g***n 的大作中提到】
: 你翻了天也没法写到别人的地盘去,
: 能叫指针吗

C*****4
发帖数: 8585
39
记得一次作业导致内存不断泄露消失


: C对火候不够的人用不好会出岔子

: Java这方面就安全多了



【在 P**T 的大作中提到】
: C对火候不够的人用不好会出岔子
: Java这方面就安全多了

P**T
发帖数: 2274
40
但不会C/C++的话,纯码农会越来越少

【在 C*****4 的大作中提到】
: 记得一次作业导致内存不断泄露消失
:
:
: C对火候不够的人用不好会出岔子
:
: Java这方面就安全多了
:

w***u
发帖数: 17713
41
我们EE的对指针理解比CS的要好,一样不被认为是cs科班出生。
c****o
发帖数: 32446
42
你根本没有明白他在说什么
CS科班出身的不应该不知道virtual memory
C*****4
发帖数: 8585
43
你老把指针跟堆栈混一起干嘛,堆栈链接数组这些是同类东西,都是存放数据的,指针
是雷达扫描工具管寻找数据的,我印象中是这样,忘得七七八八了


: 有点忘了。指针的地址是堆栈吗。好像是连续的。只是里面存放的目标数
据的地
址是不

: 连续的。

t*******t
发帖数: 1067
44
当然不是,指针对很多非计算机专业的人来说理解起来不容易,比较抽象,因为指针对
应的是内存的一个地址,然后这个地址存放的东西可以是很多不同种类的数据结构,每
个数据结构的size不同,在寻址的时候容易出错,容易把人的脑子搞乱,数学好,脑子
清晰的人一般都把指针玩的熟。
t*******t
发帖数: 1067
45
指针也可以加减的,不过跳来跳去的,不好控制。

【在 g***n 的大作中提到】
: 艹,不能加减,能叫指针?
C*****4
发帖数: 8585
46
主要是指针随时挪动位置,地址变了很多人容易搞糊涂


: 当然不是,指针对很多非计算机专业的人来说理解起来不容易,比较抽象,因为
指针对

: 应的是内存的一个地址,然后这个地址存放的东西可以是很多不同种类的数据结
构,每

: 个数据结构的size不同,在寻址的时候容易出错,容易把人的脑子搞乱,数学好
,脑子

: 清晰的人一般都把指针玩的熟。



【在 t*******t 的大作中提到】
: 指针也可以加减的,不过跳来跳去的,不好控制。
t*******t
发帖数: 1067
47
可能是循环里面分配了内存,但是code 里忘了 free memory.
我出国前工作的时候修改服务器上的一个应用程序,就犯了这样的错误,导致全单位的
网都瘫痪了半天。

【在 C*****4 的大作中提到】
: 记得一次作业导致内存不断泄露消失
:
:
: C对火候不够的人用不好会出岔子
:
: Java这方面就安全多了
:

t*******t
发帖数: 1067
48
可能是循环里面分配了内存,但是code 里忘了 free memory.
我出国前工作的时候修改服务器上的一个应用程序,就犯了这样的错误,导致全单位的
网都瘫痪了半天。

【在 C*****4 的大作中提到】
: 记得一次作业导致内存不断泄露消失
:
:
: C对火候不够的人用不好会出岔子
:
: Java这方面就安全多了
:

c****o
发帖数: 32446
49
paging了解一下
C*****4
发帖数: 8585
50
内存释放了,但是没起作用


: 可能是循环里面分配了内存,但是code 里忘了 free memory.

: 我出国前工作的时候修改服务器上的一个应用程序,就犯了这样的错误,导致全
单位的

: 网都瘫痪了半天。



【在 t*******t 的大作中提到】
: 可能是循环里面分配了内存,但是code 里忘了 free memory.
: 我出国前工作的时候修改服务器上的一个应用程序,就犯了这样的错误,导致全单位的
: 网都瘫痪了半天。

t*******t
发帖数: 1067
51
还有指向指针的指针,所以很容易把人绕晕。

【在 C*****4 的大作中提到】
: 主要是指针随时挪动位置,地址变了很多人容易搞糊涂
:
:
: 当然不是,指针对很多非计算机专业的人来说理解起来不容易,比较抽象,因为
: 指针对
:
: 应的是内存的一个地址,然后这个地址存放的东西可以是很多不同种类的数据结
: 构,每
:
: 个数据结构的size不同,在寻址的时候容易出错,容易把人的脑子搞乱,数学好
: ,脑子
:
: 清晰的人一般都把指针玩的熟。
:

c****o
发帖数: 32446
52
指针加一要看object的大小,还有alignment
d***u
发帖数: 943
53

对,这个有点儿绕。这个也是C最难的一个问题了吧?
pass reference还是pass value要搞清楚, 加上明白指针是啥。

【在 P**T 的大作中提到】
: 单指针很简单,但双指针或三指针作为argument就让很多人迷糊了
: 其实也不难,自己多玩几次就懂了

d***u
发帖数: 943
54

对,这个有点儿绕。这个也是C最难的一个问题了吧?
pass reference还是pass value要搞清楚, 加上明白指针是啥。

【在 P**T 的大作中提到】
: 单指针很简单,但双指针或三指针作为argument就让很多人迷糊了
: 其实也不难,自己多玩几次就懂了

c****o
发帖数: 32446
55
纯C没有什么reference vs value

【在 d***u 的大作中提到】
:
: 对,这个有点儿绕。这个也是C最难的一个问题了吧?
: pass reference还是pass value要搞清楚, 加上明白指针是啥。

d***u
发帖数: 943
56

pointer实际上是为了实现pass reference呀。当然你也可以认为只有pass value

【在 c****o 的大作中提到】
: 纯C没有什么reference vs value
w*******r
发帖数: 3
57
指针可以是数据的入口,也可以是函数的入口,甚至是某个预留后门的入口
x***o
发帖数: 127
58
指针的指针的指针的。。。。。

【在 c****o 的大作中提到】
: 指针的指针
x***o
发帖数: 127
59
只要把8031的集中寻址操作
MOVX
MOV ... @dptr
搞清楚了,
指针式很简单的事。

【在 w***u 的大作中提到】
: 尼玛,如果你们用过有十几种寻址方式的专用芯片写汇编,就知道c的指针太简单了。
x***o
发帖数: 127
60
很简单的。本质上就是指针做个减法而已。 大概就是container_of_xxx()
Linux kernel把这些东东都 函数/MACRO化了。
这样做的目的是,不用自己去调试犯低级错误了。

【在 e********2 的大作中提到】
: 从sub-object的指针找outter object的指针,C有一个function,忘记啥了,觉得很奇
: 妙。

x***o
发帖数: 127
61
c类似于手动挡车,啥都能做,但是概念不透彻,啥错误都能翻船。

【在 P**T 的大作中提到】
: C对火候不够的人用不好会出岔子
: Java这方面就安全多了

x***o
发帖数: 127
62
也不一定。
如果是系统mmap()提供的,这样返回的,就可以当做物理地址来用。

【在 l********e 的大作中提到】
: 你用C指针也是虚地址。从386开始,全域物理实地址系统根本不支持。
: 你大概是个半路出家的马公。或者是软了吧唧的课程训练出来的。有空再好好钻研钻研
: 体系结构,那对你了解程序运行有很大帮助。

x***o
发帖数: 127
63
写 Linux kernel/module的,就是这些地址跳来跳去。

【在 C*****4 的大作中提到】
: 主要是指针随时挪动位置,地址变了很多人容易搞糊涂
:
:
: 当然不是,指针对很多非计算机专业的人来说理解起来不容易,比较抽象,因为
: 指针对
:
: 应的是内存的一个地址,然后这个地址存放的东西可以是很多不同种类的数据结
: 构,每
:
: 个数据结构的size不同,在寻址的时候容易出错,容易把人的脑子搞乱,数学好
: ,脑子
:
: 清晰的人一般都把指针玩的熟。
:

w********9
发帖数: 8613
64

为什么???????
你想说的是CE或CE部分
其实不然
CS学生会学computer architecture
高级编程里的指针在本质上是模拟的,或者说是logical的,而不是physical的
CS学生要坐数据结构或者实现算法时候,都会要用指针
基础课里应用指针的时间肯定会比CE的要多
:一样不被认为是cs科班出生。

【在 w***u 的大作中提到】
: 我们EE的对指针理解比CS的要好,一样不被认为是cs科班出生。
w********9
发帖数: 8613
65

logical memory吧?
virtual memory这个名称虽然是ibm在1960年代就有的说法,但是在1990年代中期或者
后期在pc或pc server上被发展推广后才被比较普遍用

【在 c****o 的大作中提到】
: 你根本没有明白他在说什么
: CS科班出身的不应该不知道virtual memory

w********9
发帖数: 8613
66

对高级语言编程员来说,要看涉及的是什么样子的数据结构
如果是最基本的array,logical addresses是连续的一块。。。
加减是很容易的
。。。
但如果是linked list或者doubly linked list of 。。。。
如果是trees...
如果是array of lists of pointers。。。
。。。

【在 t*******t 的大作中提到】
: 指针也可以加减的,不过跳来跳去的,不好控制。
c*****n
发帖数: 2
67
指针不难,难的是它会跨界,而C/C++对指针跨界基本上任其放任自流。很多事程序跨
了都不知道谁干的。这是经验就比较重要了。

【在 m*******0 的大作中提到】
: 无法理解,指针有什么难度,为什么掌握不了。
m*****n
发帖数: 3575
68
你还活着,真不错。
以后多冒个泡~~
D******s
发帖数: 61
69
指针就是个内存地址,地址本身也是data,你初始化一个指针存这个地址,这个指针自
然也在内存里,那么指针的内存地址么就是指针的指针,这有啥难理解的?

【在 l******e 的大作中提到】
: 这是谭老师说过的一句名言。
s*****1
发帖数: 1
70
精华个毛 指针不会用只能说连门都没入
l********e
发帖数: 3986
71
Did you know what's "map"?

【在 x***o 的大作中提到】
: 也不一定。
: 如果是系统mmap()提供的,这样返回的,就可以当做物理地址来用。

1 (共1页)
进入Military版参与讨论