小编Pri*_*tap的帖子

当我们将int转换为double时,存储int的实际地址是否会被更改?

我想知道,当我们将int转换为double时,存储int的实际结果是变更还是增加?因为int是4个字节(假设),当我们得到类型转换加倍8个字节(假设)时,那么现在大小也增加了存储double的值?如果这是一个愚蠢的问题,请放轻松吗?

c casting

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

当我们声明静态变量时,编译器实际上做了什么?

我想知道实际情况是什么,编译器如何处理静态变量.与自动变量不同,静态变量的值即使在块结束后仍然存在,但编译器实际上如何处理这个?

c static-variables

7
推荐指数
2
解决办法
2212
查看次数

两个数组元素之和的总和?

存在这样的问题:给出两个随机整数数组,其中在每个索引处存在从0到9的数字(即,在给定数组的每个索引处存在单个数字整数).我需要找到输入数组所代表的数字之和,并将结果放在另一个数组中.

我相信我的代码一切都很好,因为我为不同的数组执行它几乎50到60次.但是当我在学校的在线评委中提交它时,它只接受了4个测试用例并拒绝了另外两个.我无法弄清楚在哪种情况下会产生错误的输出.需要一些帮助的人.

这是我的代码

public static int[] sumOfTwoArrays(int[] arr1, int[] arr2){
    int size1 = arr1.length;
    int size2 = arr2.length;
    int carry = 0,sum,s,r;
    if(size1 == size2) {
        int arr3[] = new int[size1+1];
        for(int i=arr1.length-1;i>=-1;i--) { 
            if(i==-1) {
                arr3[i+1] = carry;
                //System.out.println(i+1+" "+arr3[i+1]);
            } else {
                sum = arr1[i] + arr2[i];
                if(sum>9) {
                    s =sum;
                    r = s % 10;
                    arr3[i+1] = carry + r;
                    carry = 1;
                    //System.out.println(i+" "+arr3[i]);    
                } else {
                    if(sum==9 && carry==1) {
                        s =sum+carry;
                        r = s …
Run Code Online (Sandbox Code Playgroud)

java arrays

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

typedef struct和struct之间的区别?

我知道他们之间的基本区别只是在以下特殊情况下有疑问:

struct books{
    int id;
    char* title;    
  }book;

book.id=9;    // this is valid;
Run Code Online (Sandbox Code Playgroud)

但在以下情况下typedef:

typedef struct books{
  int id;
  char*title;
}book;
book.id=9;    //it is not valid we have to do like book b1; then b1.id=9 is valid
Run Code Online (Sandbox Code Playgroud)

你能告诉我的是这里发生了什么?

c struct

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

使用指针从字符串中删除空格

#include<stdio.h>

int main()
{
    unsigned int n=0;
    char str[100];
    char *ptr,*ptr1;    
    printf("Enter the string = ");
    gets(str);
    ptr = &str[0];
    while(*ptr!='\0')
    {
        n++;ptr++;
    }
    ptr=&str[0];
    while(*ptr!='\0')
    {
        if(*ptr==' ')
        {
            n--;
            for(ptr1=++ptr;*ptr1!='\0';ptr1++)
            {
                *ptr=*ptr1;
                 ptr++;
            }   
            ptr=&str[0];    
        }
        ptr++;
    }
    printf("Modified string = ");
    for(int i=0;i<n;i++)
    {
        printf("%c",str[i]);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道从字符串中删除空格的另一种方法,但我想使用指针来执行此操作,但我不明白这段代码有什么问题?

我真的很感谢一些小小的帮助。

c string pointers

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

为什么%s和%c被`scanf()`函数视为同一类型?

char c;
printf("%d", scanf("%s", &c)); // prints 1  
printf("%d", scanf("%c", &c)); // prints 1
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这两个语句都打印相同的值1?

据我所知,scanf()在早期匹配失败的情况下,返回成功匹配和分配的输入项的数量,甚至为零.那么这不是不匹配的情况吗?

我在这里想念的是什么?

c string scanf char

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

标签 统计

c ×5

string ×2

arrays ×1

casting ×1

char ×1

java ×1

pointers ×1

scanf ×1

static-variables ×1

struct ×1