N******K 发帖数: 10202 | 1 int a =1;
int b =2;
int@ p = &a;
int@ q = &b;
int c = @p * @q;
对比
int a =1;
int b =2;
int* p = &a;
int* q = &b;
int c = *p * *q;//wtf is this?
我现在用p[0] 代替*p, 增加可读性
int c = p[0] * q[0]; |
G***l 发帖数: 355 | 2 这你不能怪c++吧,是c犯的错误
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
P*******L 发帖数: 2637 | 3 C/C++ 在这方面混乱得不是一点点,就别费心改进了。
定义两个指针:
int* a, * b;
而不是
int* a, b;
这个问题你觉得如何解决?
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
C**********r 发帖数: 8189 | 4 @是python3的matrix乘法符号嘛
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
h**********c 发帖数: 4120 | 5 At c time, I think only ascii or asci are the available literals. |
N******K 发帖数: 10202 | 6 急需发明一些新的符号 放到键盘上
【在 C**********r 的大作中提到】 : @是python3的matrix乘法符号嘛
|
S*A 发帖数: 7142 | 7
你的提议才是有问题的。C的定义很清楚。
如果你提议 int *a,b; 是两指针。那
int *a,*b 是什么?指针和指针的指针?
你不会要*在空格前后来区分绑定顺序吧。
如果 int * a 呢?
【在 P*******L 的大作中提到】 : C/C++ 在这方面混乱得不是一点点,就别费心改进了。 : 定义两个指针: : int* a, * b; : 而不是 : int* a, b; : 这个问题你觉得如何解决?
|
b*******s 发帖数: 5216 | 8 it is c code. in c++, we do like
std::unique_ptr a;
std::unique_ptr b;
【在 P*******L 的大作中提到】 : C/C++ 在这方面混乱得不是一点点,就别费心改进了。 : 定义两个指针: : int* a, * b; : 而不是 : int* a, b; : 这个问题你觉得如何解决?
|
D***n 发帖数: 6804 | 9 用括号不就得了?
int c = (*p) * (*q);
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
w***g 发帖数: 5958 | 10 pascal发来贺电
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
|
|
S*A 发帖数: 7142 | 11 这个在 C 定义是完全没有问题的。
*p * *q,中间那个是乘号。一头一位是dereference。
这个取决于 * 作用的type。
看习惯了就没有问题了。一般人会留空格提示优先关系。
实在不爽可以 (*p) * (*q)
C++ 操作符号的函数调用依赖操作对象的类型不要太多。
操作符overwrite。
*p 不是永远可以用 p[0] 替代,我举个例子:
int (*p)(void);
然后statment 调用函数指针可以写:
(*p)();
但是不可以写
(p【0】)();
也不可以写 p[0]()
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
n****l 发帖数: 1739 | 12 各位大牛就不要鸡蛋里挑骨头了。knuth大牛说了:指针是非常了不起的抽象。
我觉得学好C比学好functional programming有用。
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
d****i 发帖数: 4809 | 13 这个是显然的道理,从UNIX,到Linux,到Windows, Mac OS,C建立了所有的操作系统
,也和C++一起包揽了所有的系统软件和很多关键的应用软件,也奠定了现在所有主流
语言的基础(Java, JavaScript, Python, Perl, PHP, C#, Objectyive-C, Go, ......
)。fp算个p,叫放屁还差不多。
【在 n****l 的大作中提到】 : 各位大牛就不要鸡蛋里挑骨头了。knuth大牛说了:指针是非常了不起的抽象。 : 我觉得学好C比学好functional programming有用。
|
m******e 发帖数: 201 | 14 pointer i = get_address(var)
get_value_from_address(i) • 3
【在 N******K 的大作中提到】 : int a =1; : int b =2; : int@ p = &a; : int@ q = &b; : int c = @p * @q; : 对比 : int a =1; : int b =2; : int* p = &a; : int* q = &b;
|
m**u 发帖数: 541 | |
S*A 发帖数: 7142 | |