重庆工程建设招标投标交易信息网,网站建设优化广告流量,做网站公司 上海,字体logo设计在线生成目录
1. 指针-整数
2. 指针-指针
2.1 指针-指针含义
2.2 指针-指针运算应用#xff1a;实现my_strlen函数
3. 指针的关系运算#xff08;大小比较#xff09; 1. 指针-整数
联系关于指针变量类型关于指针类型和指针-整数相关知识#xff1a;
原文链接如下#xff1…目录
1. 指针-整数
2. 指针-指针
2.1 指针-指针含义
2.2 指针-指针运算应用实现my_strlen函数
3. 指针的关系运算大小比较 1. 指针-整数
联系关于指针变量类型关于指针类型和指针-整数相关知识
原文链接如下
【C语言】_指针变量-CSDN博客https://blog.csdn.net/m0_63299495/article/details/144883068对于type* ppn表示跳过n×sizeoftype个字节
以打印一维数组元素数组在内存中连续存放为例
代码示例1利用下标打印
int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int i 0;int sz sizeof(arr) / sizeof(arr[0]);for (i 0; i sz; i) {printf(%d , arr[i]);}return 0;
}
运行结果为 代码示例2 利用指针打印
int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int i 0;int* p arr;int sz sizeof(arr) / sizeof(arr[0]);for (i 0; i sz; i) {printf(%d ,*p);p;}return 0;
}
运行结果如下 代码示例3利用指针打印
int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p arr;int i 0;int sz sizeof(arr) / sizeof(arr[0]);for (i 0; i sz; i) {printf(%d , *(p i));}return 0;
}
运行结果如下 2. 指针-指针
2.1 指针-指针含义
指针-指针的绝对值得到的是指针与指针之间元素的个数
代码示例
int main() {int arr[10] { 0 };printf(%d\n, arr[9] - arr[0]);printf(%d\n, arr[0] - arr[9]);return 0;
}
运行结果为 注指针-指针运算的前提是两个指针必须指向同一块内存空间
int main() {int arr[6];char ch[5];printf(%d,arr[4]-ch[3]); //error
}
arr[6]与ch[5]的内存空间未必连续这样的指针相减运算是没有意义的
2.2 指针-指针运算应用实现my_strlen函数
1、strlen函数的功能计算字符串长度\0前的字符个数
int main() {char arr[] abcdef;int len strlen(arr);printf(The length of the array is %d\n ,len);return 0;
}
运行结果如下 2、实现my_strlen()函数
实现方式1
#includestdio.h
int my_strlen(char* str) { // 关于形参arr arr[0]用字符指针接收int count 0;while (*str ! \0) {count;str;}return count;
}
int main() {char arr[] abcdef;// 字符串变量末尾暗含一个\0[a b c d e f \0]int len my_strlen(arr);printf(%d\n, len);return 0;
}
运行结果 实现方式2
int my_strlen(char* str) {char* start str;while (*str ! \0) {str;}return str - start;
}
int main() {char arr[] abcdef;// 字符串变量末尾暗含一个\0[a b c d e f \0]int len my_strlen(arr);printf(%d\n, len);return 0;
}
运行结果 3. 指针的关系运算大小比较
代码示例利用指针关系实现数组元素遍历
int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p arr;int sz sizeof(arr) / sizeof(arr[0]);while (p arr sz) {printf(%d , *p);p;}return 0;
}
运行结果