取地址符,就是传递amp 的地址 ,和赋值给指针一样的,int p=&a;你传递的是地址,那么接收就需要 指针
首先,对楼主的好学好问精神相当赞赏。对于第一个问题,myadd中传递的两个参数是指针类型,而指针类型的变量中保存的值是内存地址,调用此函数时用&就是取对应变量地址之意。注意这* &两个符号的含义——取指针对应地址的内容和取内容对应的地址。下一个问题,void意思是该函数结束时不会有返回值,故...
a = 5;int &b = a;这才是引用的定义;char q = (char*)&a 中&表示取地址,而不是引用;我的理解:a是数组标识符,标识数组a的位置,即a的值是数组的首地址;&a表示的是&a[0],那&a的值当然和a的值一样了!为了有据可依,可运行下面的程序:include void main(){ char a[10]= ...
四个选项中,D不是对a数组元素的正确引用。int a[10]={0,1,2,3,4,5,6,7,8,9},p=a;相当于 int a[10]={0,1,2,3,4,5,6,7,8,9};int p;//定义p为执行int的指针变量 p = a;//a为数组名,代表数组的起始地址 A、p的值是一个地址(数组a的起始地址),所以p-a = 0,...
所以*p-'0'实际上可以写成*p-48 由于你的str[]里面全部是字符型的数字,因此实际上i=*p-'0'实际上是把这些字符转换成整数 比如*p指向'3'的时候,因为'3'的ASCII码是51,所以*p-'48'就等于整数3 所以整段程序的意思是吧你的一个只包含数字的字符串str中的每一个字符转换成整数放在a[i]中 ...
上面说过执行 int *p 之后,p是一个地址但也是一个变量。 &p是一个地址,顺着这个地址能找到一个值,这个值是p,然后p也是一个地址,顺着这个地址能找到另外一个值 p 而 p不再是一个地址,是一个变量就跟 int a=1,b=2; 里一样。 通俗一点解释找一本《C语言程序设计》的书,...
&读作“z'da”,在英文中代表and,所以也可以读作and,使用也是比较广泛的。&意为与、和,在数学逻辑中此符号充分运用到。在HTML或SGML文档中,用于指明有字符存在(特殊字符)的默认符号。
a,b都是用户定义的变量,可以随便赋值。5是字面值常量。 你可以对a,b求地址 比如 int* p = &a;但是你不能对5求地址。 比如int *p = &5;另外 C++ primer里面提到 前缀++返回左值,后缀返回右值。也可以通过左值与右值的概念来理解++操作法。比如 ++a = 10; 可以编译通过 (a++) = 10;...
你没有搞定字符数组的初始化和赋值的差别,字符数组的初始化可以用:char a[10]="hello";char a[10]={'h','e','l','l','0'} 等方式 但是你是赋值啊 复制建议采用 strcpy(a,"china")
*p=3000H**p的值为多少?**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。那么&&p、*(&p)和&(*p)又等于多少?&&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数怎么可能有地址呢?*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。&*p=&(*p)=&(3000H)=2003H,...