为您找到"
关于C语言,*p=a[0]是什么意思呀?
"相关结果约100,000,000个
不正确的。这里有一个问题。 p=a;等于是不同类型赋值了。a等效于二维指针,更准确的说法是int (*)[m]的数组指针。 而p是int*型的一维指针。后续的 a[0]是a[0][0]的地址这个说法完全正确。而p是a[0]的地址, 只是值相同,类型是不同的。 准确说法是p也是a[0][0]的地址 。
a是一个数组名 本身确实是一个指针, 同时a[1]就是表示偏移量为一的变量, 即为一个int类型的变量 &a[1] 是取这个a[1]的地址 也就是它是一个指针。p = int *p = 指针 当然不一样 前面一个是把a[1]的值赋给*p,也就是说把 p指向的是a【1】的地址 后面一个是把a[1]的...
表达式p++的值是p的当前值。进而表达式*(p++)的值就是*p的值,也就是a[0]。进而*(p++)+1的值就是a[0]+1,也就是字符串one的后两个字母。
等价的,一个是在定义的时候就让指针p指向a[0]的地址,一个是先定义指针p然后再讲a[0]的地址复制给p,结果是一样的。只是在编辑器跑的时候有点差别
n=*n+1;也是一个道理,表示n指向的地址的值加1 a++;表示a地址加1,就是说本来a指向0x0000,那么现在就变了,a会指向另外一个地址,那么这个地址对应的值也会相应的改变。建议:先找一本C语言的书,把指针一章的基本概念多理解一下,这些都是基础的东西,需要多体会。
不成立 int *p 定义p只是一维指针,它的值只能是指向一个整型的地址 p=a;是可以的 p = a的话,首先,p 本身未赋值初始化,其指向是不确定的 上述语句就是将a赋值给一个不确定的值,故会报错的 其次 假设 p 已初始化,由于a是一个地址,那么意味着 p 将是一个二维指针 (二维指针要这样...
相当于int *p=&a[0]; 即p=a;而*(p+i)、*(a+i)、a[i]、p[i]都等价,所以x=*(p+3)就是x=a[3]另:&a[i]、&p[i]、a+i、p+i都等价;p=a+1与p=&a[1]等价
这是个缺省类型int的数组指针定义,定义p这个数组指针,它的值是后面那四个数据。其单元大小为int*4个单元
是指针运算符,*pmul表示puml指向的变量;&是取地址运算符,&a[0][0]表示取a[0][0]的地址
即 *q = a[0] * 10 + (c[2] - '0') = 1 * 10 + ('8'-'0') = 10 + 8 = 18;第二步: p=p+1; 使 p 指向 c[3] .循环里 的 q+=1; 使 q 指向 a[1]的地址 &a[1], *q 等于 数值 a[1]。你要分清的是: 语句里,p,q 是地址,*p,*q 是值c...