632076202 发表于 2017-4-30 09:45:05

求助关于指针的问题

在vs2015中,使用如下代码
int a=2000;
int *b ;
b = &a;
会出现错误,

但是:
int a=2000;
int *b = &a;
却不会出现错误
这是为什么啊?

newu 发表于 2017-4-30 10:08:05

同样是vs2015实测我的没问题啊,可以描述的再详细点吗?{:10_266:}

newu 发表于 2017-4-30 10:09:55

看图

632076202 发表于 2017-4-30 10:29:52

newu 发表于 2017-4-30 10:09
看图

你放在main函数外面试试

632076202 发表于 2017-4-30 10:39:01

newu 发表于 2017-4-30 10:08
同样是vs2015实测我的没问题啊,可以描述的再详细点吗?


int a=2000;
int *b ;
b = &a;
放在main函数外面好像就不行,你试试

人造人 发表于 2017-4-30 11:43:56

632076202 发表于 2017-4-30 10:39

int a=2000;
int *b ;



int a=2000;
int *b ;
可以放在main函数外面


b = &a;
不可以,不要问我为什么(这里应该是所有函数的外面)

人造人 发表于 2017-4-30 11:45:51

#include <stdio.h>

int a = 2000;
int *b;

int main(void)
{
       
        b = &a;

        return 0;
}

人造人 发表于 2017-4-30 11:47:33

#include <stdio.h>

int a = 2000;
int *b;


//这下,b = &a; 也放在main函数的外面了
void foo(void)
{
        b = &a;
}


int main(void)
{

        return 0;
}

632076202 发表于 2017-4-30 12:06:40

人造人 发表于 2017-4-30 11:43
int a=2000;
int *b ;
可以放在main函数外面


这让我忍不住想要问为什么额?。。。。。。

632076202 发表于 2017-4-30 12:08:18

人造人 发表于 2017-4-30 11:43
int a=2000;
int *b ;
可以放在main函数外面


是c语言的潜规则,还是本来说明了这样的语法格式?

人造人 发表于 2017-4-30 12:08:30

632076202 发表于 2017-4-30 12:06
这让我忍不住想要问为什么额?。。。。。。


你告诉我,
这叫什么
int a=2000;
int *b ;

这又叫什么?
b = &a;

632076202 发表于 2017-4-30 15:15:32

人造人 发表于 2017-4-30 12:08
你告诉我,
这叫什么
int a=2000;


int *b;是声明一个指针变量b,
b=&a;是取变量a的地址放到b之中啊,
不是这样么?

人造人 发表于 2017-4-30 16:15:54

632076202 发表于 2017-4-30 15:15
int *b;是声明一个指针变量b,
b=&a;是取变量a的地址放到b之中啊,
不是这样么?

你把 b = &a;
放到函数外面,打算让 b = &a; 什么时候执行?

int *b; 放到函数外面,声明并定义了一个全局变量
int *b = NULL; 放到函数外面,声明并定义并初始化了一个全局变量

b = &a; 不能放到函数外面,这是一条赋值语句,需要放在函数内部执行

632076202 发表于 2017-4-30 16:40:05

人造人 发表于 2017-4-30 16:15
你把 b = &a;
放到函数外面,打算让 b = &a; 什么时候执行?



噢噢,明白了,非常感谢您的回答,谢谢您,为我解答了很多疑惑
页: [1]
查看完整版本: 求助关于指针的问题