相关疑难解决方法(0)

822
推荐指数
10
解决办法
35万
查看次数

重新定义全局范围中的指针

这个问题中,我对这个看似基本的C方面感到非常困惑.请考虑以下两行代码:

int *ptr;
*ptr = 2;
Run Code Online (Sandbox Code Playgroud)

gcc将发出以下警告:

main.cpp:4:1: warning: data definition has no type or storage class [enabled by default]

 *ptr = 2;
 ^
main.cpp:4:2: warning: type defaults to 'int' in declaration of 'ptr' [enabled by default]

 *ptr = 2;
  ^
main.cpp:4:8: warning: initialization makes pointer from integer without a cast [enabled by default]

 *ptr = 2;
        ^
Run Code Online (Sandbox Code Playgroud)

什么类型ptr被默认,intint*(如,ptr指针,或int)?如果是这样,这是否意味着ptr指向地址2,还是没有改变?我会认为它已被更改,因为除非您提供ptr有效地址,否则它会崩溃.

int i = 5;
int …
Run Code Online (Sandbox Code Playgroud)

c

8
推荐指数
1
解决办法
835
查看次数

标签 统计

c ×2

c++-faq ×1

declaration ×1

definition ×1

terminology ×1