在C语言中,指针运算有一些需要注意的细节:
int *p = (int *)0x12345678;
p++; // 指针向后移动4个字节
int *p = (int *)0x12345678;
int *q = NULL;
if (p == q) {
// 指针相等的情况
} else {
// 指针不相等的情况
}
int arr[5] = {0, 1, 2, 3, 4};
int *p = arr;
int *q = arr + 5; // 指向数组范围之外的内存地址
char *c = (char *)0x12345678;
int *i = (int *)c; // 隐式类型转换
char *d = (char *)0x12345678;
int *j = (char *)d + 4; // 显式类型转换
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 1, y = 2;
swap(&x, &y); // 传递指针作为参数
return 0;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。