Pointer vs. Array
int nums[] = {1, 2, 3, 4, 5};
int* p;
p = nums; => p = &nums[0];
p = p + 1; // ++p
---
int nums1[] = {1, 2, 3, 4, 5};
int nums2[5];
nums2 = nums1; => &nums2[0] = &nums1[0]; (x)
for(int i = 0; i < 5; ++i) {
nums2[i] = nums1[i];
}
---
두 배열이 같은지 비교
if(nums1 == nums2) { => 이것은 주소값을 비교하는 것이다.
...
}
for(int i = 0; i < 5; ++i) {
if(nums1[i] != nums2[i]) break;
}
if(i == 5)
//두 배열에 들어있는 요소들이 모두 같다.
---
int nums[] = {1, 2, 3, 4, 5};
int* p;
p = nums;
p == nums;
*(p+0) == nums[0];
*(p+1) == nums[1];
*(p+2) == nums[2];
...
*(p+n) == nums[n];
*(nums + n) == nums[n];
*(p + n) == p[n];
---
int* p;
p = nums; => p = &nums[0];
p = p + 1; // ++p
---
int nums1[] = {1, 2, 3, 4, 5};
int nums2[5];
nums2 = nums1; => &nums2[0] = &nums1[0]; (x)
for(int i = 0; i < 5; ++i) {
nums2[i] = nums1[i];
}
---
두 배열이 같은지 비교
if(nums1 == nums2) { => 이것은 주소값을 비교하는 것이다.
...
}
for(int i = 0; i < 5; ++i) {
if(nums1[i] != nums2[i]) break;
}
if(i == 5)
//두 배열에 들어있는 요소들이 모두 같다.
---
int nums[] = {1, 2, 3, 4, 5};
int* p;
p = nums;
p == nums;
*(p+0) == nums[0];
*(p+1) == nums[1];
*(p+2) == nums[2];
...
*(p+n) == nums[n];
*(nums + n) == nums[n];
*(p + n) == p[n];
---
Comments
Post a Comment