懂了,*p2指向的是一个数组,既一行数据。之前的指向的是数组的首号元素,既一个数据。虽然相等但不等价(代表的意思不同)
hank1016 发表于 2016-12-8 17:19
#include
int main()
#include<stdio.h>
int main()
{
int a={1,2,3,4,5};
int* p=a;
for(int i=0;i<5;i++)
{
printf("%d\n",a);
}
return 0;
}
get it!
{:5_109:}
本帖最后由 liuganzhihui 于 2018-12-17 14:58 编辑
第二个指针数组为啥会有6个元素,不是定义了5个元素么,还有数组指针的话,我感觉用图示表示的时候,这样更加明确:int []
hyj57555 发表于 2016-12-6 18:07
5个元素的数组脚标应该是从0~4吧
我也这么认为
没有明白为何要打印*(*p+1),P是指针,*p就是对指针P进行解引用,那不就是取出存在P里面的值吗,直接打印*(p+1)不就是取出P+1号元素里面的值吗?
hank1016 发表于 2016-12-8 17:19
#include
int main()
啊?
我跟你写的一样,并没有出现问题啊。
而且第4行的星号有没有并不会影响结果。
我现在挺迷茫的。
(我是小白)
学习了
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
int i, j, k, temp, sum = 0;
for (i = 1; i < argc; i++) {
temp = 0;
j = strlen(argv);
printf("%d\n", j);
for (k = 0; k < j; k++) {
if (argv == '-') {
temp = temp * 10 - argv + '0';
if (k == j - 2) {
break;
}
} else {
temp = temp * 10 + argv - '0';
}
}
sum += temp;
}
printf("sum = %d\n", sum);
return 0;
}
hank1016 发表于 2016-12-8 17:19
#include
int main()
晦涩,我怎么觉得 字符指针根本就是不是我们立即的地址。。。
您这个号位整形的不够放,%d换成%p
支持一下
打卡
{:10_266:}{:10_266:}{:10_266:}彻底蒙了 指针好难{:10_260:}{:10_260:}{:10_260:}
加油吧 各位爱你们
打卡{:10_266:}
SINOSMG 发表于 2019-1-1 16:12
没有明白为何要打印*(*p+1),P是指针,*p就是对指针P进行解引用,那不就是取出存在P里面的值吗,直接打印 ...
同这个问题 ,没有搞明白
好难啊!
*(*p2+1)中*p2是什么意思啊0.0
用了两天来理解这章~~总算看懂了~~