C语言中指针变量的问题
发布网友
发布时间:2022-05-16 13:26
我来回答
共1个回答
热心网友
时间:2023-10-23 18:03
int
a[10]是a[0~9];而后缀++是先用后加。
所以这句*p++=i;和很重要。每次循环是a[n]=n;最后次执行是a[9]=9,但p已经指向a[10](越界),才跳出循环。
此时p=a+10,*p=a[10]。
所以会出现指针变量跳出到数组以后的内存单元
和
必须加上第二个p=a,没有了第二个p=a怎么出来的答案这么不靠普。
建议初学者,一步步来,搞懂基本,对于++和数组名与指针的关系,这些有关地址的一点点来,要是几种混一起,容易乱。
c语言程序指针问题
C语言规定,一个指针变量只能指向同类型的变量,不能时而指向一个整型变量,时而 指向一个字符型变量。当然,如果程序中确实需要进行不同类型的 指针变量进行赋值时, 则需要进行强制类型转换。3、混淆指针变量和它所指向的数据而导致程序错误如在程序main(){int ...
C 语言 指针变量的定义问题
(1)该指针变量指向的变量的类型。如i_pointer指向的变量i是整型。(2)该指针变量在内存中占多少内存单元。如i_pointer占两个内存单元,称为“近指针”,用near表示。如果该变量在内存中占4个内存单元,称为“远指针”,用far表示。如果未指定near或far,缺省是near。(指针变量在内存中要么占2个...
c语言中指针变量取值问题,c语言初学者,求指点
总共12个4字节,每次加一代表移动一个4字节,确实没有错.你所有的数据总共是12个,移动4次后换行,也就说12个数字会分成3行打印,每行4个数字,这个4次和一个int的4字节没有关系.
C语言中的指针为什么会改变变量的值?
pa=&a;句是将指针*pa指向变量a。pa存放的是a的地址,*pa其实就是a,可以理解为把a换了一个名字表示。*pa=20就是对a进行赋值操作,等于a=20;a的值当然改变了。看看指针的知识吧!
C语言指针变量问题
C语言里面的指针和数组是很有趣的。例如定义数组a[10],你可以通过a[1]访问里面的元素,也可以通过*(a+1),来访问。为什么这里可以这样用呢?ptr的类型为(int *),所以ptr在内存里面存放的就是int类型的指针,指向了某个int地址。正常情况下,你可以通过ptr访问它指向的某一个地址里面的数据,如...
c语言指针问题
(2),对于*P1=*P2 操作之前,一定要先将P1和p2先指向变量。还有*p=3之前,也要先把p指向一个变量。指针就是一个指向地址的变量,使用之前需要先给它赋值,也就是先将将一个变量的地址赋值给它,这个时候指针里面存的就是这个变量的地址。理解了指针的概念,上面这些问题就好理解了~...
C语言指针问题
变量之间互相赋值是正确的。“原因是被赋值的指针变量前不能再加*说明符”这句话的意思是:如果 给 指针P加上“*”,那么它就变成 了变量,代表的意义就变了,而地址只能赋值给指针不能给变量。最后建议学习看书一定要读国外原著,国内翻译或作者的理解或描述,未必就是正确和合适的。
几道C语言指针方面的问题
1. int *a;表示声明一个指针变量a,注意a的值是个地址,不是值,这样才表示一个值(前提是a确实指向一个值,不然的话,会是一个随机数):*a,int a=10,*b=&a;表示的是把a的地址给指针变量b。2.B,其中D是错的,因为楼主只是声明一个指针变量,你没有初始化,也就是没有分配内存,要是...
C语言中的指针问题到底是怎么回事~
指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。例如: 例二: 1。 char a[20]; 2。 int *ptr=a; ... ... 3。 ptr++; 在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整形变量a。接下来的第3句中,指针ptr被加了1,编译器是这样...
关于c语言指针的一些问题
指针p 指向的单元 内容为 a [0] 3、a 是数组名的时候是正确的 他表示 a[0] = 指针p所指单元的内容。其实 理解指针的话 有一个很好的 方法 你可以把 指针变量p当做一个数组名 那么*p 也就表示 p[0] p也就表示指针 p 然后你就会知道该如何赋值了 。希望对你有所帮助 ...