定义
在64位中, 指针是8个字节
在32位中,指针是4个字节
因为8个字节是
指针类型的意义
- 指针类型决定了:指针解引用的权限有多大
- 指针类型决定了,指针走一步,能走多远(步长)
#include <stdio.h>
// 2的代码
int main()
{
int arr[] = { 1,2,3 };
int* p = arr;
char* pc = arr;
printf("%p\n", p);
printf("%p\n", p + 1);
printf("%p\n", pc);
printf("%p\n", pc + 1);
}
指针的运算
指针+-整数
C语言与C++语言规定,一个指针变量加/减一个整数是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加或相减。这样就保证了p+i指向p下面的第i个元素。
随着数组下标的增大,地址也跟着增大!
指针 +-指针
int main()
{
int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
int* pa = arr;
printf("%d\n", arr[9] - arr[0]);
return 0;
}
// 结果是9
指针-指针得到的是两个指针之间的元素个数
// 重写 strlen()
int MyStrlen(char* str)
{
char* start = str;
while (*str != '\0')
{
str++;
}
return (str - start);
}
int main()
{
char str[] = "abc";
printf("len=%d\n", MyStrlen(str));
return 0;
}
// 结果是len=3
指针+指针
没有什么意义
二级指针
指针数组
int *parr[]; // 整形指针的数组
char *parr2[];
标签:arr,初阶,int,char,str,printf,指针
From: https://www.cnblogs.com/liuuu/p/17076929.html