#include <stdio.h>
void matrixChange(int * , int);
int main(void){
int as[10] ={0,1,2,3,4,5,6,7,8,9};
matrixChange(as,10);
return 0;
}
void matrixChange(int *ptr_a , int size){
int count=0;
while(count<size){
printf("%#x: %d\n",ptr_a+count,*ptr_a+count);
count++;
}
count=0;
while(count<size){
*(ptr_a+count) = 10;
printf("%#x: %d\n",ptr_a+count,*ptr_a+count);
count++;
}
}
為什麼我要修改陣列值,但是結果卻是增加數值,不是修改。
請求大家幫忙 @@
*(ptr_a+count) = 10; // 指派10給指標的值
printf("%#x: %d\n",ptr_a+count,*ptr_a+count); // *ptr_a取值(10) + count
如果要修改不同的應該是 *(ptr_a+count) = count + 1 之類的。
如果你要全部顯示10是*(ptr_a+count) 指標要先加上位移再取值,否則他會先取值在+count。
看了您的留言 我明白了,不小心沒有做好抓值的動作@@
謝謝您的留言,話說,我好像發錯地方了,本要做最佳解答的
看了您的留言 我明白了,不小心沒有做好抓值的動作@@
謝謝您的留言,話說,我好像發錯地方了,本要做最佳解答的