在c中声明静态变量时
在C中声明静态变量时 假设您编写了这样一个程序:在c中声明静态变量时,c,pointers,malloc,C,Pointers,Malloc,在C中声明静态变量时 假设您编写了这样一个程序: int *c; void foo(){ c = (int *) malloc (10*sizeof(int)); c = &c[3]; *c = *&c[3]; } 有*c意味着什么?我的意思是,我明白,这意味着它指向某个东西,但是*c做什么呢 还有,为什么需要强制转换int*malloc的返回值 在C中声明静态变量时 与此问题无关,或至少与您显示的代码无关 但是*c做什么呢 假设您的问题与语句*c=*&
int *c;
void foo(){
c = (int *) malloc (10*sizeof(int));
c = &c[3];
*c = *&c[3];
}
有*c意味着什么?我的意思是,我明白,这意味着它指向某个东西,但是*c做什么呢
还有,为什么需要强制转换int*malloc的返回值
在C中声明静态变量时
与此问题无关,或至少与您显示的代码无关
但是*c做什么呢
假设您的问题与语句*c=*&c[3];,它是指c持有的地址处的对象
你为什么要在malloc面前施放int*
你不应该。请输入malloc[和family]的返回值
注意:您的代码片段非常糟糕,很可能是无效的。c=&c[3];明显的内存泄漏
我的意思是,我明白,这意味着它指向某个东西,但是*c做什么呢
*并不总是意味着它指向某物。
例子:
如果你这样写:
int* c;
这意味着c是指向int变量的指针
当您喜欢这样做时:
int* c = &x;
*c = 5;
第二个*是指针c1。学习语言的基础知识。每次学习一个小问题需要几十年的时间。2.这与静态变量无关。你推荐任何网站来学习c juanchopanza的基础知识吗?那么int*c;,是什么类型的变量呢@PeterChung c是指向int的指针。感谢@Quentin的修复和OP最新问题的答案。坦率地说,我有点惊讶于我自己怎么/为什么没有回答这个问题。困惑的