小编ash*_*hna的帖子

464
推荐指数
9
解决办法
46万
查看次数

功能声明:K&R与ANSI

K&R函数声明和ANSI函数声明之间有什么区别?

c kr-c

35
推荐指数
2
解决办法
3万
查看次数

C中的外部联系

K&R说:

默认情况下,外部变量和函数具有以下属性:所有引用它们的名称相同,即使是单独编译的函数,也是对同一事物的引用

请解释这意味着什么,我不明白

c

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

c char指针问题

如果我们声明char * p="hello";则因为它是写在数据部分中,我们不能修改到其中p点,但我们可以通过修改指针本身的内容.但我发现在C陷阱与误区安德鲁·柯尼希AT&T贝尔实验室的Murray Hill这个例子中,新泽西州07974

这个例子是

char *p, *q;
p = "xyz";
q = p;
q[1] = ’Y’;
Run Code Online (Sandbox Code Playgroud)

q将指向包含字符串xYz的内存.p也是如此,因为p和q指向相同的内存.

如果我提到的第一个语句也是真的,那怎么回事呢?同样我运行了下面的代码

main()
{
char *p="hai friends",*p1;
p1=p;
while(*p!='\0') ++*p++;
printf("%s %s",p,p1);
}
Run Code Online (Sandbox Code Playgroud)

得到的输出为 ibj!gsjfoet

请解释在这两种情况下我们如何修改内容?提前致谢

c

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

不理解C标准中的位字段描述

"字段是否可以重叠单词bounday是实现定义的.字段不需要命名;未命名的字段(仅冒号和宽度)用于填充.特殊宽度0可用于强制在下一个字边界处对齐. "

我无法得到这些线条.你能解释一下吗?

c

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

c变量范围

如果在块中定义了变量,它是仅存在于块中还是整个程序中?例如

main()
{
    int j=5;
    {
        int i=10
        printf("%d",i);
    }
    printf("%d , %d ",i,j);
}
Run Code Online (Sandbox Code Playgroud)

它有效吗?

main()
{
    int j=5, *k;
    {
        int i=10
        printf("%d",i);
    }
     k=&i
    printf("%d , %d ",*k,j);
}
Run Code Online (Sandbox Code Playgroud)

因为变量保留在内存中从它的声明点到函数退出点?

c

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