我们可以将变量与指针变量区分开来

nik*_*iko 3 c

昨天我在C编码时,我的朋友问我指向变量是指针还是变量?我坚持了一会儿.我没有找到它,我只需要回去搜索并告诉他.但我在想是否有任何功能可以区分它们.我们可以将变量与指针变量区分开来

int a;
sizeof(a); // gives 2 bytes
int *b;
sizeof(b); // gives 2 bytes
// if we use sizeof() we get same answer and we cant say which is pointer
// and which is a variable
Run Code Online (Sandbox Code Playgroud)

有没有办法找出变量是普通变量还是指针?我的意思是,在查看您在开头声明的变量然后向下走1000行代码后,有人会说它是指针或变量吗?

在评论之后,我想明确地说它是一个16位系统架构.

Kei*_*son 8

首先,问题"它是指针还是变量"没有多大意义.指针变量一个变量,就像整数变量或数组变量一样,它是一个变量.

所以真正的问题是某些东西是否是一个指针.

不,没有任何功能可以告诉你某些东西是否是指针.如果你考虑一下,用像C这样的静态类型语言就不可能.函数接受某些指定类型的参数.您不能将变量传递给函数,除非类型(指针或其他)首先是正确的.

  • 虽然在C++中有模板和函数重载,但是很容易编写一个函数(嗯,函数集),如果参数表达式有指针类型则返回true,否则返回false.小心为数组返回false.C++是一种像C这样的静态类型语言,区别在于它有一堆C没有的额外设备. (2认同)