指针的引用(取消null对指针的引用)
C语言选择题 指针的引用怎么看?
其实你的题目里面写法就有问题。
若有定义
int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
A.*(p+i) B.*(a+i)
C.p[i] D. *a[i]
应该这样才对,然后题目定义的指针p指向数组a,也就是指向数组的第一个元素的地址。然后定义的变量i也没有具体赋值,后面就直接引用了。那我们就认为i为一个在这个题目里有效的数字。
A选项,是取内容,*(p+i)相当于取p指针往后移i个单位的那个地址的内容,是对的。
B选项,a是数组名是不可以改变的,a+i是错误的。
C选项,应该也是对的,除非他越界了。
D选项不需要取内容符号*。
指针的引用怎么写(超短问题)
void fun(A * p){
}
类似这样写就是指针引用,就可以改变指针的值
C语言指针/引用/取值
指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。
根据出现的位置不同,操作符? * ?既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,*表示这里声明了一个指针。其它情况用到*表示指针的取值。
是地址操作符,用来引用一个内存地址。通过在变量名字前使用操作符,我们可以得到该变量的内存地址。
// 声明一个int指针
int*ptr;
// 声明一个int值
int? val = 1;
// 为指针分配一个int值的引用
ptr = val;
// 对指针进行取值,打印存储在指针地址中的内容
int deref = *ptr;
printf("%d\n", deref);
第2行,我们通过*操作符声明了一个int指针。接着我们声明了一个int变量并赋值为1。然后我们用int变量的地址初始化我们的int指针。接下来对int指针取值,用变量的内存地址初始化int指针。最终,我们打印输出变量值,内容为1。
第6行的val是一个引用。在val变量声明并初始化内存之后,通过在变量名之前使用地址操作符我们可以直接引用变量的内存地址。
第8行,我们再一次使用*操作符来对该指针取值,可直接获得指针指向的内存地址中的数据。由于指针声明的类型是int,所以取到的值是指针指向的内存地址存储的int值。
说穿了,指针就是地址吧,这里可以把指针、引用和值的关系类比为信封、邮箱地址和房子。一个指针就好像是一个信封,我们可以在上面填写邮寄地址。一个引用(地址)就像是一个邮件地址,它是实际的地址。取值就像是地址对应的房子。我们可以把信封上的地址擦掉,写上另外一个我们想要的地址,但这个行为对房子没有任何影响。
c++指针可以引用吗
//当然可以,看例子
#includeiostream
using namespace std;
int main()
{
int a=66,b=88;
//pt指向a
int *pt=a;
//refpt引用pt
int* refpt=pt;
//输出66 66
cout*pt" "*refptendl;
//令refpt引用的指针pt指向b
refpt=b;
//输出88 88,可见改变指针的引用refpt指向的对象,等同于改变了指针pt指向的对象
cout*pt" "*refptendl;
system("PAUSE");
return 0;
}