相关疑难解决方法(0)

char a [的语义

我最近在向同事解释原因时感到尴尬

char a[100];
scanf("%s", &a); // notice a & in front of 'a'
Run Code Online (Sandbox Code Playgroud)

是非常糟糕的,稍微好一点的方法是:

char a[100];
scanf("%s", a); // notice no & in front of 'a'  
Run Code Online (Sandbox Code Playgroud)

好.对于每个人都准备告诉我为什么不应该出于安全原因使用scanf:放松.这个问题实际上是关于"&a"与"a"的含义.

问题是,在我解释了为什么它不起作用之后,我们尝试了它(使用gcc)并且它起作用=)).我赶紧跑了

printf("%p %p", a, &a);
Run Code Online (Sandbox Code Playgroud)

它会打印两次相同的地址.

任何人都可以向我解释发生了什么事吗?

c c++ pointers semantics

14
推荐指数
4
解决办法
1292
查看次数

标签 统计

c ×1

c++ ×1

pointers ×1

semantics ×1