为您找到"
指针指向问题p = a,和p = &a
"相关结果约100,000,000个
p=&a//int *p,p是一个指向int类型的指针,而&a表示的是指向整个数组的指针(取一个数组名得地址所产生的是一个指向数组的指针)。p是int类型的指针,而&a是指向数组的指针,类型不匹配,所以式子是错误的。要想得到正确的式子的话,可以这样 int(*q)[5]=&a//这样的话q是一个指向拥有五个...
p是一个指针变量。a是一个变量。p=&a, 把变量a的地址赋值给指针变量p。*p=a 变量a的值赋值给a指向的内存单位。
intListLength_L(LinkList &L){int i=0;//i存储链表长度,初始为0LinkList p=L;//p为链表的指针,初始为头指针,指向头结点if(p) p=p-next;//如果p指向的头结点不为空,p指向带数据的第一个结点while(p){//如果p非空,i长度加1,且指向下一个结点p=p->next;i++;} return i;//...
int* p2 = &a[0]; // 这两个相同,p1 p2都指向数组第一个元素// 但是 &a 的意思就完全不同了!它是对数组名取地址,得到的是一个指针,这个指针// 指向的是一个数组!
不一样,前者将a变量的地址赋给p指向的那个对象,一般没这样的写法。后者是把a的地址赋给p指针,等于让p指向a变量
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块 内存区域,就相当于说该指针的值是这块内存区域的首地址。 指针所指向的内存区和指针所指向...
方式不一样,目的相同。int a[10],*p=a;//这是定义时初始化 int b[10],*pb;pb=b;//这是定义了指针变量pb,再给pb赋值。
再来分析你的程序问题——for(p=a;p<(a+10);p++)这一行就是不理解a+10,为什么不加20,假如它的首地址是0000 这里应该这样看,(a+10) 是不是等于 a[10]?是。那么你的程序里面只是定义了 int a[10]; 怎么能加20呢?这里引用一楼的回答"+号对于指针运算不是简单的代数运算,而是使指针...
函数中改变的内容将与函数堆栈内容无关,修改的是指针指向对应内存的位置,故可以作多个修改(传多个指针,修改多个指针指向的内存空间)。最后一个问题,return的意思是函数返回,只要调用这一语句,函数即刻返回,该语句下的所有语句将不会被执行。最后祝楼主的C语言之路越走越棒!!
P=a中的a如果是一个数组的话,a是一个首地址, p=&a[0] 同样是数组a的首地址。 也就是说a与&a[0]的地址是相同的,