可能重复:
参考变量是C++概念吗?有C版的吗?如果在C中可用,为什么我的代码会产生编译错误?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 10;
int b = 20;
int &c = a;
int &d = b;
return 0;
}
输出:
bash-3.2$ gcc test.c
test.c: In function `main':
test.c:12: error: parse error before '&
我很想知道register存储说明符在C/C++中的行为。下面的程序在C++中是有效的,但是对于C,它是无效的。
int main()
{
register int i;
int* b = &i; // Valid in C++ but not in C
}
那么,我的问题I,,为什么C++允许地址运算符(&)进入寄存器变量?
P.S :我知道寄存器存储说明符在现代编译器中是不可取的。
我对过程编程非常陌生,所以我不确定我的代码是坏的还是在Visual中做错了什么。
所以我有一段代码,用来打印一个整数,打印它在内存中的位置,通过内存改变它的值,然后打印新的整数以及它在内存中的位置。
它与gcc一起编译并运行cmd,但在Visual中不行。
#include <stdio.h>
int main(){
int a = 4;
printf("Integer is: %d\n", a);
printf("Integer is stored at: %p in memory\n", a);
int *poi
我在C中摆弄两个数组,试图让其中一个侵占另一个的内存空间。作为一个初学者,我知道在我的例子中编译器会自动为数组分配内存空间,但是这些内存地址是如何选择的呢?例如,在下面的代码(由我的浏览器在c++.com网站上编译)中,numbers[]和stealth[]的地址分别是:
0x75fbb51092c0
0x75fbb51092b0
据我计算,它们之间相隔16个字节。这是不是某种安全措施,这样一个数组就不会进入另一个数组的空间?
// more pointers
#include <iostream>
using namespace std;
int main ()
{
int
我很清楚有很多类似的问题,但还没有找到解决这个问题的方法。所以我也要感谢任何能给我指出副本的人。 假设我有一个函数,它接受一个空指针并修改里面的值: int func(void *head)
{
if (head == NULL){
printf("is null\n");
/* do sth with the value */
}
else{
printf("not null\n");
/* do sth with the value */
}
retur
我正在尝试理解C c = new C();的语法。
我读取new关键字部署,初始化状态变量,运行构造函数,设置为一个,并返回新实例的地址。
我看到状态变量a有一个0进制的公共getter函数a(),它返回a的值。
问题:
什么是契约的getter函数?为什么new作用于getter函数?In C c = new C();为什么我们需要第一个C来定义变量?<code>H 214</code><code>G 215</code>
今天,一个学生来找我,问我,先生,我们有int,float,char和所有C语言的数据类型。
当我们编写int i时,这意味着对于float f和char c,i是一个variable of type integer,依此类推。
类似地,我们有int *i的意思是i is a pointer to an integer。float *f和char *c也是如此。
我们在C中也有void* v;。
空指针也称为泛型指针。
他问我,既然我们可以有空指针,同样为什么我们不能有void v (作为数据类型)?
我只是说不出话来。所以,我请求您的帮助。如何让他明白。
我是c++编程的新手,我正在尝试理解c中的structs概念,在许多教程中,他们解释了如何用下面的示例声明结构。
struct node
{
int data;
int value;
}
我站在上面的情况下,但在下面的情况下,他们在里面声明了一个结构。
struct node
{
int data;
struct node *next; \\ what is this? why they declared like it ?
}
我在学习递归的时候遇到了这个问题:
FORTRAN implementations do not permit recursion because
a. they use static allocation for variables
b. they use dynamic allocation for variables
c. stacks are not available on all machines
d. it is not possible to implement recursion on all machines.
我发现答案是(a)
但我想知道一种编程语言支持递归应该
为什么printf打印7,尽管变量a是函数fun()的局部变量,并且一旦控制从fun()函数返回,就不应该再存在。
这是c代码。
#include<stdio.h>
main()
{
int *fun();
int *c=fun();
printf("%d",*c);
getch();
}
int *fun()
{
int a=7;
return(&a);
}
输出:7
我正在写一个Ruby库,里面有一个模块,里面有一堆类。其中许多类需要通过调用脚本来使用和修改,但我不希望(某些)初始化器是可见的/可调用的:
module MyLib
class Control
def initialize
# They can use this
end
def do_stuff
Helper.new('things')
end
end
class Helper
# Shouldn't be visible
def initialize(what)
@
我正在尝试一个变量,它的值是一个像"facebook“这样的单词。然而,我不能轻易地在C中使用它,而不是使用累人的方法(我做了,但它太长了,没有必要这样做)。我想我可以用一个浮点数代替"facebook“,比如123456789等等,我的代码是这样的:
printf("Enter the number.\n");
scanf("%f", website);
if(website==32463774)
{
printf("You wrote facebook.");
}
当程序在打印"Enter the numb
我们如何获取存储在内存中的变量地址?
Sub Main()
Dim a As Integer
a = 10
System.Console.WriteLine("Value of a is : {0}", a)
System.Console.WriteLine("Address of a is : {0}", AddressOf(a))
System.Console.ReadKey()
End Sub
在这里,AddressOf是必需的函数名,但是我想获得整数变量的地址。
我想写一个c程序来打印矩形的面积和周长,但是我得到了一个分割错误。 #include <stdio.h>
int rectanglePerimeter(int h, int w)
{
int p =(2*h)+(2*w);
return p;
}
int rectangleArea(int h, int w)
{
int a = h * w;
return a;
}
int main()
{
int h, w, perimeter, area;
printf("Tell me the heig
这实际上是一个普遍的问题,但现在我正在使用Go和C#。假设我们希望在Go中从用户的输入中赋值一个变量:
func main() {
var input float64
fmt.Scan(&input)
}
很明显,为什么我们需要一个内存位置来放置我们的新值。但是,为什么在像Java或C#这样的语言中,我们没有遵循相同的逻辑:
var input = Convert.ToInt32(Console.ReadLine());
// and not &input ...