指针问题求解答,问问大噶,这个p[2]是什么意思,p不是指针变量吗
*p指向了a[1]
所以p[0]=a[1] p[1]=a[2] p[2]=a[3]
第四个元素,也就是54
A[B]
*(A+B)
*(B+A)
B[A]
//以上四行等价
"abc"[1]
*("abc"+1)
*(1+"abc")
1["abc"]
//以上四行等价
A[0]
*(A)
0[A]
//以上三行等价
不知道你这个问题是否已经解决, 如果还没有解决的话:如题。
****A**B***CD*EF*****
****ABCDEF*****
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[]) {
char s[100] = "\0";
char *p[100];
int i = 0, l, end;
scanf("%s", s);
while (s[i] == '*') {
p[i] = &s[i];
i++;
}/*指向字符串最开始的'*'号*/
for (int j = i; j < strlen(s); j++) {
if(s[j] != '*') {
p[i++] = &s[j];/*读取字符串中字母*/
end = j;/*记录最后一个字母位置*/
}
}
for (int j = end + 1; j < strlen(s); j ++) {
p[i++] = &s[j];/*指向字符串结束的'*'号*/
}
for (int j = 0; j < i; j++) {
printf("%c", *p[j]);
}
return 0;
}
陕西科技大学 C语言程序设计课作业 指针-20190327 第三题
指针变量p[2]的含义是对指针变量p进行偏移操作,即表示指针p指向的内存地址后面第二个元素的值。假设p是一个指针变量,类型为T,那么p[2]的含义是,从p所指向的内存地址开始,偏移2个T类型的大小,即获取该地址后面第二个T类型变量的值。
具体的解决方案如下所示:
下面是一个示例代码,假设p是一个指向int类型的指针变量:
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr; // 指针p指向arr的第一个元素
int result = *(p + 2); // 获取p[2]的值
printf("%d\n", result); // 输出3
在这个示例代码中,p指向arr数组的第一个元素1,通过将p加上2个int类型的大小,就可以得到p[2]的值,即3。
希望这个解释可以帮助你理解指针变量p[2]的含义。如果还有其他问题,请随时提问。