我有一个示例代码,我在一个类中声明变量,但是当我在方法中使用它们时,值变为零.请在下面找到更多详细信息.
class RectangleExample
{
double i;
double j;
public void GetValues()
{
i = 2.5;
j = 3.5;
}
public double GetArea()
{
return i * j;
}
public void Display()
{
Console.WriteLine("Length: {0}", i);
Console.WriteLine("width: {0}", j);
Console.WriteLine("Area: {0}", GetArea());
}
}
class ExecuteRectangle
{
static void Main(string[] args)
{
RectangleExample obj1 = new RectangleExample();
obj1.Display();
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
int main()
{
int x = 3;
float y = x>10;
printf("y is %f",y);
}
Run Code Online (Sandbox Code Playgroud)
如果x<10输出是1.0000?
我的尝试
所以x是3并且x<10是真实的返回1.00并且x>10是假返回0.00但仍然为什么浮动表现得像bool.为什么你没有返回一些垃圾值?
我需要在C++ char数组中初始化非常量大小.大小必须是非常量的,因为它是从函数生成的,不能使用向量,因为这个char数组将用于读取和写入文件.例:
int i = functionToGetvalue();
unsigned char ch[i];
file1 >> ch;
file2 << ch;
Run Code Online (Sandbox Code Playgroud) 为什么编译没有错误呢?我究竟做错了什么?
#include <stdio.h>
int main (){
int n1 = 90, n2 = 93, n3 = 95;
int i = 2147483647;
int ii = 2147483646;
int iii = 2147483650;
char c1[50] = {'\0'};
char c2[50] = {'\0'};
char c3[50] = {'\0'};
n1 = sprintf(c1, "%d", i+i);
n2 = sprintf(c2, "%d", ii);
n3 = sprintf(c3, "%d", iii);
printf("n1 = %d, n2 = %d, n3 = %d\n i = |%s| \n ii = |%s|\niii = |%s|\n", n1, n2, n3, c1, c2, c3);
return …Run Code Online (Sandbox Code Playgroud) 所以,似乎'i'几乎就是C++中的通用计数器.似乎在每个for循环中,人们重新初始化'i'.我不得不问,他们为什么不在全球范围内初始化'我'?'i'仍然需要在每个循环中重新定义,所以我不明白为什么会有任何混淆.
它看起来像这样:
#include <iostream>
int i=0;
int main()
{
for (i=0;i<3;i++)
{
std::cout << i << "\n";
}
for (i=0;i<5;i++)
{
std::cout << "hello" << "\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
比以下内容更容易阅读,编写速度更快:
#include <iostream>
int main()
{
for (int i=0;i<3;i++)
{
std::cout << i << "\n";
}
for (int i=0;i<5;i++)
{
std::cout << "hello" << "\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) var msg=""在javascript 中意味着什么?我不明白这""一点.
这个问题已被关闭,因为它没有向某些人提出真正的问题我从那以后更新了问题主体,现在可能会有所改善.但是,我希望大家都建议我如何改进这个问题,因为这是我在这方面的工作和研究.
RAII(资源分配是初始化)理论规定,如果我从MMU借用内存,我需要将其返回(新的和删除).但是,我想知道如果我在C++中做错的初始化实践的话会有什么好处.
如果我执行以下操作该怎么办:
double* pp1 = 0;
double* pp2 = 0;
Run Code Online (Sandbox Code Playgroud)
然后在我需要的地方使用pp1和pp2?这是根据标准编程实践初始化指针的错误方法吗?或者它是初始化.初始化完全取决于new运营商吗?
在设计中应该使用多少指针:
1)实时2)安全关键3)关键任务
此外,我在32位和64位计算机上运行相同的C/C++应用程序时发现了奇怪的结果.如果我搞乱指针,我的机器会变得很慢/表现不佳.因为在我的设计中使用了太多的指针,我的机器变慢了.对于一些"明显的"保密协议,我不能把我的代码放在这里.我很抱歉.为了澄清,我在返回结果之前删除了每个方法中使用的所有指针,即我的内存管理非常均衡和高效,不会导致堆栈溢出问题.
我知道这些问题可能过于开放,但我也在调查(Google,MISRA C++,英国计算机协会和IEEE),以找出详细的答案.我的想法是实际研究和开发一种用C++编程的方法,而不涉及很多指针.
我知道一个明显的答案是,"你用C++编程,这样你就可以使用指针并停止滥用你电脑的MMU".但如果有人有任何不同的想法,我想听听.
在JAVA中如果我们可以在类中初始化为.
class Emp2 {
int salary=100;
public static void main(String... s) {
Emp2 e1=new Emp2();
System.out.println(e1.salary);
}
}
Run Code Online (Sandbox Code Playgroud)
那么为什么我们需要构造函数呢?Plss帮我...
package lab9;
import java.util.Scanner;
import java.util.Date;
public class AccountManager
{
// the account
private Account account;
// reader for reading user input
private Scanner reader;
private Transaction transaction;
private AccountManager accountmanager;
/**
* Constructor for objects of class AccountManager
*/
public AccountManager(Account account, Transaction transaction, AccountManager accountmanager)
{
this.account = account;
reader = new Scanner(System.in);
this.transaction =transaction;
this.accountmanager=accountmanager;
}
public void start()
{
System.out.println("WELCOME TO THE ACCOUNT MANAGER APPLICATION");
boolean finished = false;
for(int i=0; i<3; i++)
{
// get …Run Code Online (Sandbox Code Playgroud) 既然auto关键字是在c ++ 11中引入的,我认为我们应该能够删除指定auto并简单地将变量初始化为v = 20.由于C++能够自己推断变量的类型,为什么不将auto关键字全部放在一起,并在第一次初始化时推导出变量的类型.
即代替
int main() {
auto v = 20;
}
Run Code Online (Sandbox Code Playgroud)
为什么不说
int main() {
v = 20;
}
Run Code Online (Sandbox Code Playgroud)
(假设没有与全局变量冲突,因为python对这种情况很好)