小编use*_*571的帖子

c中的二维数组和指针

int s[4][2]={1,2,3,4,5,6,7,8};
printf("\n%u,%d",s+1,*(s+1));

Ans 2665496,2665496
Run Code Online (Sandbox Code Playgroud)

二维数组(s + 1)给出第二行的地址,但为什么*(s + 1)没有给出值3?

c arrays pointers

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

单维数组地址

char arr[10]="hello";
Run Code Online (Sandbox Code Playgroud)

我猜&arr这个数组是类型的char(*)[10].如果我是对的,那是什么类型的*(&arr)?是数组中第一个元素的类型基址还是地址?

c arrays

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

在c中返回printf的值?

int main()
{
        int x = 10, y;
        y = printf("x = %d\n", x);
        printf("y = %d\n", y);
        return 0;
}

output:
x = 10
y = 7
Run Code Online (Sandbox Code Playgroud)

我知道printf在打印字符串时返回字符数.但是为什么在打印时返回7.什么是printf打印int时的返回值?

可能重复: C中printf()函数的返回值

c printf

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

c中的位操作

int samp=0;

for(i=0;i<=31;i++)
{
  samp=samp|1<<i;
}
printf("\ %d\n",samp);
Run Code Online (Sandbox Code Playgroud)

输出:

-1
Run Code Online (Sandbox Code Playgroud)

如果我循环直到i<=31(将所有32位设置为1),为什么它给-1 ?当我循环时它只i<31给2147483647.为什么会这样?

c bit-manipulation

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

向量字符串 push_back 在 C++ 中不起作用

此代码片段接收字符串、分隔符(空格)和向量作为参数,并根据分隔符拆分字符串并将其存储在向量中。如果我使用 push_back,它不会将任何内容存储到向量中,但如果我使用 [] 运算符,它就可以工作。有人可以解释为什么 push_back 不起作用吗?

void split(const string & input,char delim,vector<string> & elems){
    stringstream  ss;
    ss.str(input);
    string item;
    int i = 0;
    while(getline(ss,item,delim)){
        //elems.push_back(item);
        elems[i] = item;
        i++;
    }
}

int main(){
   char delim = ' ';
   vector<string> item(2);
   string input;
   getline(cin,input);
   split(input,delim,item);
}
Run Code Online (Sandbox Code Playgroud)

c++ string containers vector

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

变量超出范围后如何保留矢量值?

将局部变量向量分配给map<int , std::vector<int>> m1in foo(),希望一旦超出范围,就无法访​​问s1的值.但事实并非如此.看起来向量中的元素存储在堆内存中,局部变量s1存储在堆栈中.当s1存储在map中时,看起来它分配了一个新的堆内存并将值复制到它.我的理解是对的吗?我打印foo中每个向量元素的地址以及map中每个向量元素的地址.

#include <iostream>
#include <map>
#include <set>
#include<vector>
using namespace std;


std::map<int , std::vector<int>> m1;

void foo(){
    vector<int> s1 = { 10, 20, 30, 40 };
    cout << "local var address: " << &s1 << "\n";
    cout << "Element address " << &s1[0] << "  " << &s1[1] << " "
         << &s1[3] << "  " << &s1[4] << "\n";
    m1[1] = s1;
}


int main() {
    foo();

    cout << "\nElement value and address …
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

标签 统计

c ×4

arrays ×2

c++ ×2

vector ×2

bit-manipulation ×1

containers ×1

pointers ×1

printf ×1

string ×1