小编Rub*_*byR的帖子

typedef语法澄清

我在下面的声明中有点混淆 - 你能帮忙清理一下吗?

typedef struct {
  int a;
  int b;
} example;
Run Code Online (Sandbox Code Playgroud)

还有这个

struct something {
  int a;
  int b;
} ob;
Run Code Online (Sandbox Code Playgroud)

我不确定下面甚至是什么意思?

typedef struct foo {
  int a;
  int b;
} bar;
Run Code Online (Sandbox Code Playgroud)

c struct

2
推荐指数
1
解决办法
55
查看次数

当我们传递一个指向单个char的char*时,%s如何在C中表现

这是代码 -

 int main() {
     char c = 'A';
     char *p = &c;

     char *str = "Hello";

     printf("%s %s", p, str);
     return 0;
 }
Run Code Online (Sandbox Code Playgroud)

输出如下

A????? Hello
A?*??? Hello
A?z??? Hello
A???? Hello
A????? Hello
A??y?? Hello
A?*?? Hello
A?Z??? Hello
A?*+?? Hello
A?l?? Hello
A?z?? Hello
A??i?? Hello
A???? Hello
Run Code Online (Sandbox Code Playgroud)

现在我知道%s试图寻找'\ 0'来停止打印,这就是char指针str完美输出的原因.

但我想知道的是,当我们将char*指向单个字符时,它会在实际char之后打印一些垃圾值 - 它如何决定每次丢失4或5个垃圾值后停止?这项安全检查如何运作?据他所知,"?" 可能是字符串的一部分.

c string pointers

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

标签 统计

c ×2

pointers ×1

string ×1

struct ×1