小编use*_*273的帖子

简洁地声明和初始化指针(即指向int的指针)

给定char的指针,可以执行以下操作:

char *s = "data";
Run Code Online (Sandbox Code Playgroud)

据我所知,这里声明了一个指针变量,为变量和数据分配了内存,后者被填充,data\0并且有问题的变量被设置为指向它的第一个字节(即变量包含一个可以的地址被解除引用).这简短而紧凑.

例如,给定指向int的指针,可以这样做:

int *i;
*i = 42;
Run Code Online (Sandbox Code Playgroud)

或者那个:

int i = 42;
foo(&i); // prefix every time to get a pointer
bar(&i);
baz(&i);
Run Code Online (Sandbox Code Playgroud)

或者那个:

int i = 42;
int *p = &i;
Run Code Online (Sandbox Code Playgroud)

这有点同义反复.使用单个变量时,它很小且可以容忍.但是,它并没有对多个变量进行多次使用,从而导致代码混乱.

有没有办法干燥简洁地写同样的东西?这些是什么?有没有更广泛的编程方法,可以完全避免这个问题?可能我不应该使用指针(笑话)或什么?

c pointers dry

7
推荐指数
1
解决办法
3万
查看次数

标签 统计

c ×1

dry ×1

pointers ×1