#include <stdio.h>
void main() {
extern int fun(float);
int a=fun(3.5);
printf("%d",a);
}
int fun(aa)
float aa;
{
return ((int)aa);
}
Run Code Online (Sandbox Code Playgroud)
虽然输出是垃圾值,但上面提到的代码块在我的Visual Studio 8编译器上编译得很好.但是当我在gcc-4.3.4上编译相同的代码时,我得到了以下编译错误:
prog.c:2:警告:'main'的返回类型不是'
int'prog.c:8:错误:'
fun'progress.c的冲突类型:3:错误:以前的'fun'声明在这里
如果它具有以下属性,它将如何工作:
我正在用C++编写一个程序,我应该从用户那里接收一个字符串而不在屏幕上显示它(例如:apassword).我尝试使用cin和gets接受字符串.但两者都会回显用户在控制台中输入的字符.
那么在C++中有没有任何函数或任何其他方法呢?
我基本上是c ++人,现在正在学习c#.虽然数组声明我发现c#期望类型之后的方括号不同于c,c ++.c#语言规范有这样的原因吗?
我已经开始学习C#并且正在寻找标准规范,但发现大于2.0的C#版本没有通过ISO或ECMA标准化(或者我从维基百科收集).这有什么理由吗?
这个问题出于好奇; 在为测试程序编写main时,我没有返回任何内容main(没有return声明main).但我宣称主要是int main().它编译成功.
如果有任何其他函数用int返回类型编写并且实际上没有返回int,我会得到一个错误
'函数名'必须返回值
那么为什么编译器不会为main功能抱怨相同?
我正在尝试理解C#中覆盖和虚拟的需要,所以我编写了以下代码:
using System;
namespace Override
{
class Base
{
public virtual void method()
{
Console.WriteLine("Base method");
}
}
class Derived : Base
{
public override void method()
{
Console.WriteLine("Derived method");
}
}
class Program
{
static void Main(string[] args)
{
Derived d = new Derived();
d.method();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我期待调用和打印"派生方法".然后我编写了以下代码而不使用虚拟/覆盖组合.
using System;
namespace Override
{
class Base
{
public void method()
{
Console.WriteLine("Base method");
}
}
class Derived : Base
{
public void method()
{
Console.WriteLine("Derived method");
}
}
class …Run Code Online (Sandbox Code Playgroud) 我开始学习.NET和C#基础知识,现在我觉得我很清楚他们.
所以我想研究ASP.NET MVC网站开发框架.在我看到的大多数书籍和教程中,我只是知道它是一个Web开发框架.
谈到.NET框架,它在哪里完全适合,我的意思是它是CLR大量类的一部分还是其中的一部分BCL?
我认为以下程序会清楚地说明我的疑问,所以我发布了该程序:
#include <stdio.h>
int main() {
int a[]={1,2,3,4,5};
if(&a[0] == a)
printf("Address of first element of an array is same as the value of array identifier\n");
if(&a == a)
printf("How can a value and address of an identifier be same?!");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是输出链接:http : //ideone.com/KRiK0
我一直在使用using std::cout;或using std::cin等,成功地将名称引入源文件,并在文件的函数中进一步使用它们。我尝试做同样的事情,std::string::size_type最终在 gcc 中 得到“错误:在非类范围内的成员的使用声明”,在 MSVC 编译器中得到“错误:在非类范围内不是有效的使用声明” 。
这是我编写的代码的链接: https: //onlinegdb.com/-c6sJuZdrV。
以下是相关摘录。
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::string::size_type;
void Part_2()
{
string s1, s2;
cout << "Enter the first string" << endl;
cin >> s1;
cout << "Enter the second string" << endl;
cin >> s2;
size_type s1Size = s1.size();
size_type s2Size = s2.size();
}
Run Code Online (Sandbox Code Playgroud)
我期望using std::string::size_type;像 一样工作using …
我试图理解为什么这个程序不起作用
#include<stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int d;
for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我在C.中进行自动类型转换时,我遇到了这个程序.但我不明白有符号和无符号数据类型之间的转换是如何发生的.请解释一下.谢谢,哈里什
以下是我编写的代码
Calc[] calculators = new Calc[10];
calculators[0].AddToSum(10);(编写相应的类和方法).但是我得到了"对象引用未设置为对象的实例"异常.然后通过一些研究我通过执行以下操作删除了异常.
for (int i = 0; i < 10; i++)
{
calculators[i] = new Calc();
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我们需要再次分配内存,这与c/c ++不同.这就是我在c ++中的表现:
Calculator *calc=new Calculator[10]//I know I need to check for std::bad_alloc exception
calculators[0].AddToSum(10);
delete[] calc;
Run Code Online (Sandbox Code Playgroud) 我试图研究作为 C++ 标准库一部分的容器的标准库实现。我的机器上有 Microsoft Visual Studio 2022,我可以转到std::array类的头文件定义。
当我到达类的类定义的末尾时std::array,我注意到数据成员没有声明为私有,并且上面都是公共成员函数,因此也使数据成员成为公共的。
因此,为了测试它,我尝试在std::array定义的对象中访问它main(),令我惊讶的是我可以访问它,并且它也在输出中打印了正确的值!
#include <array>
#include <iostream>
int main()
{
std::array<int, 5> staticArray{0,1,2,3,4};
std::cout << staticArray._Elems[1] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这是允许的吗?!任何人都可以破坏数据,对吗?
在我用C#编写的以下程序中:
static void Main(string[] args)
{
paramsAndOptionalTest(1,2);
#pragma region CmdLineStuff
for (int i = 0; i < args.Length; i++)
{
Console.WriteLine("{0}", args[i]);
}
foreach (string arg in args)
{
Console.WriteLine(arg);
}
string[] apiargs = Environment.GetCommandLineArgs();//this will give the executable name and path too
int exitCode = Environment.ExitCode;
foreach (string arg in apiargs)
{
Console.WriteLine(arg);
}
Console.WriteLine("Exit Code {0}", exitCode);
string myString = string.Format("11 in hexa is {0:x}", 11);
System.Windows.MessageBox.Show(myString);
#pragma endregion CmdLineStuff
ImmutableStrings();
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
我使用了#pragma区域.但是我得到了CS1633:无法识别的#pragma指令警告.所以我认为C#编译器不能识别这个Pragma,因为在C++中它工作得很好.在C#中有没有等效的pragma?
c++ ×6
c# ×5
.net ×3
c ×3
asp.net-mvc ×1
c++11 ×1
ecma ×1
iso ×1
namespaces ×1
overriding ×1
polymorphism ×1
pragma ×1
std ×1
using ×1