有一个数组A,定义为int A[10],并且有另一个包含基址的指针,定义为int *ptr = A.
我最近看过这篇文章 如何找到'sizeof'(一个指向数组的指针)?,我无法弄清楚A和ptr之间的区别是什么.他们俩都不只是拥有阵列的基地址吗?
我们A[i] and ptr[i]现在可以互换使用,对于一些小于10的整数.
那么为什么使用sizeof()得到的结果有所不同?
我有一个大小的字符串数组5,我有n元素.我怎么能确定n?我试过sizeof(array)/sizeof(array[0]),但是返回数组的大小,即5.我的代码是:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string array[5];
array[0] = "pie";
array[1] = ":P";
array[2] = "YELLOW";
cout << sizeof(array)/sizeof(array[0]);
}
Run Code Online (Sandbox Code Playgroud) 如何使用指针初始化2D数组.
int *mapTable[] = { {1,10} , {2,20} , {3,30} , {4,40} }; // It's giving error
Run Code Online (Sandbox Code Playgroud)
这int *mapTable是一个错误.
我怎样才能正确申报?
在下面的代码中,我创建了一个基于书籍结构的对象,并且让它拥有多个"书籍",我设置的是一个数组(定义/启动的对象,即).但是,每当我去测试我的指针知识(练习帮助)并尝试制作一个指向创建对象的指针时,它就会给我错误:
C:\ Users\Justin\Desktop\Project\wassuip\main.cpp | 18 |错误:将"书籍 " 分配给"书籍*[4]"|*时出现不兼容的类型
请问,这是因为对象book_arr []已被视为指针,因为它是一个数组?谢谢(C++新手,只是想验证).
#include <iostream>
#include <vector>
#include <sstream>
#define NUM 4
using namespace std;
struct books {
float price;
string name;
int rating;
} book_arr[NUM];
int main()
{
books *ptr[NUM];
ptr = &book_arr[NUM];
string str;
for(int i = 0; i < NUM; i++){
cout << "Enter book name: " << endl;
cin >> ptr[i]->name;
cout << "Enter book price: " << endl;
cin >> str;
stringstream(str) << ptr[i]->price;
cout << …Run Code Online (Sandbox Code Playgroud) 好的,所以我有一个模型类,它包含指向(将会是)一个point3对象数组的指针:
point3* _vertices_colors;
Run Code Online (Sandbox Code Playgroud)
Point3具有以下typedef:
typedef GLfloat point3[3];
Run Code Online (Sandbox Code Playgroud)
基本上将point3对象数组作为数组数组.然后在派生类的构造函数中,我为我想要存储的顶点和颜色的数量分配内存,如下所示:
_vertices_colors = new point3[16];
Run Code Online (Sandbox Code Playgroud)
这意味着我的对象有8个顶点,并存储了自己的颜色.然后我在堆栈上定义以下数组,准备复制到指针:
point3 verticesColors[] = {
{1.0, 1.0, 1.0}, {1.0, 0.0, 0.0},
{-1.0, 1.0, 1.0}, {1.0, 0.0, 0.0},
{-1.0, -1.0, 1.0},{1.0, 0.0, 0.0},
{1.0, -1.0, 1.0},{1.0, 0.0, 0.0},
{1.0, 1.0, -1.0}, {1.0, 0.0, 0.0},
{-1.0, 1.0, -1.0}, {1.0, 0.0, 0.0},
{-1.0, -1.0, -1.0},{1.0, 0.0, 0.0},
{1.0, -1.0, -1.0},{1.0, 0.0, 0.0}
};
Run Code Online (Sandbox Code Playgroud)
然后,我使用for循环复制到堆上的数组:
for(int i = 0; i < 16; i++)
{
*_vertices_colors[i,0] = *verticesColors[i, 0];
*_vertices_colors[i,1] = *verticesColors[i, 1]; …Run Code Online (Sandbox Code Playgroud) 我需要你对C /С++数组的帮助.我已经用Python编程了三年,它的数组(被称为list)非常容易使用.
>>> array = [1,2,3,4]
>>> array.append(5)
>>> array
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
正如我在C/C++中读到的,我需要创建一个指向数组的指针.请你做一个包含数组的小型草图,char并且只有一个方法附加,它被调用append并接收a char作为参数.此方法将数组的大小增加1并将给定的数组添加char到此数组中.
有人可能认为这是一个功课,但我无法理解数组,指针和内存分配如何工作的原理.我想这并不难,但它是在像Python这样的语言之后发生的,因为我并不关心Python中的这些东西.请问您能提供一小段代码并附上解释吗?
提前致谢!
我想初始化对象属性,但它只是继续说类型不匹配.怎么纠正呢?
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
class Student{
public:
int nr_ID;
char nazwisko[40];
char imie[40];
double punkty;
Student* next;
Student(int nr_ID, char nazwisko[40], char imie[], double punkty){
this->nr_ID = nr_ID;
this->nazwisko = nazwisko;//HERE
this->imie = imie;//HERE
this->punkty = punkty;
next = NULL;
}
~Student(){}
};
Run Code Online (Sandbox Code Playgroud) char a[1][2];
char b[1][2];
a[0][0] = 'a';
a[0][1] = 'b';
b[0][0] = 'a';
b[0][1] = 'b';
if(a[0] == b[0]){
cout << "worked\n";
}
Run Code Online (Sandbox Code Playgroud)
所以据我所知,字符数组之间的比较并不像你期望的那样工作.if语句不会执行,因为条件a == b返回false.为什么是这样?
我正在尝试编写一个用于在C中为PIC微控制器打印文本的函数(我认为它基于gcc)。
void print(char[] text);
void print(char[] text)
{
for(ch = 0; ch < sizeof(text); ch ++)
{
do_something_with_character(text[ch]);
}
}
Run Code Online (Sandbox Code Playgroud)
并这样称呼它:
print("some text");
Run Code Online (Sandbox Code Playgroud)
我收到有关错误括号的编译器投诉。
这有什么问题?
在这种情况下,如何使用char数组指针?
我想用c ++语言动态创建一个二维数组.但是在那个2d数组列中应该有不同的大小.我的意思是说2d数组不应该是M*N.
它应该是......
1 2 next line
3 4 5 next line
2 3 4 5 next line
5 next line
4 5 7
Run Code Online (Sandbox Code Playgroud)
我能够以上述方式创建二维数组,但如何显示数组内容不断为我创建一个问题.请有人解释我如何解决这个问题.