相关疑难解决方法(0)

如何找到'sizeof'(指向数组的指针)?

首先,这里是一些代码:

int main() 
{
    int days[] = {1,2,3,4,5};
    int *ptr = days;
    printf("%u\n", sizeof(days));
    printf("%u\n", sizeof(ptr));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法找出ptr指向的数组的大小(而不是仅仅给出它的大小,在32位系统上是4个字节)?

c arrays pointers sizeof

288
推荐指数
8
解决办法
35万
查看次数

sizeof(数组)如何在运行时工作?

我已经读过C中的sizeof运算符在编译时被解释,因为在编译时编译器知道数组大小及其类型,sizeof能够计算array占用的字节数.但是sizeof如何处理以下代码:

 #include<stdio.h>
 #include<string.h>
 int main()
 {
    int n;
    scanf("%d",&n);
    int a[n];
    int s=sizeof(a);
    printf("%d",s);
    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

这里的数组大小在编译时是不知道的,那么它是如何正常工作的?

c sizeof

24
推荐指数
3
解决办法
9312
查看次数

sizeof表示null终止的const char*

const char* a;
Run Code Online (Sandbox Code Playgroud)

如何确保字符串'a'为空终止?当a ="abcd"并且我做sizeof(a)时,我得到4.这是否意味着它不是以null结尾?如果是的话,我会得到5?

c string char

20
推荐指数
4
解决办法
5万
查看次数

标签 统计

c ×3

sizeof ×2

arrays ×1

char ×1

pointers ×1

string ×1