指针方式逆序数组
来源:互联网 发布:lte速率优化 编辑:程序博客网 时间:2024/05/23 12:22
#include <stdio.h>
int main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int *p1 = a; // 指向数组的第一个元素
int *p2 = a + sizeof(a)/sizeof(a[0]) - 1;
while (p1 < p2)
{
int tmp = *p1;
*(p1++) = *p2;
*(p2--) = tmp;
}
int i;
for (i = 0; i < 10; i++)
{
printf ("%4d", a[i]);
}
printf ("\n");
return 0;
}
字符串指针典型错误:
// 典型错误1:将一个字符串写入到一个没有初始化的指针位置
int main2()
{
//char str[10];
//char *p = str;
char *p; // 野指针
printf ("p = %p\n", p);
scanf ("%s", p);
return 0;
}
// 典型错误2:用指针去修改字符串常量的值
int main4()
{
// 字符串: "hello"是一个常量,不能用指针改变它的值
// 只能拿来使用
char *p = "wello";
*p = 'h';
printf ("%s\n",p);
return 0;
}
字符数组逆序:
//将 句子 I am from shanghai逆序
#include <stdio.h>
#include <string.h>
int main()
{
// char *p = "I am from shanghai";
// char str[] = "I am from shanghai";
char str[] = "you are from shanghai";
// 将整个字符串逆序
char *p1 = str;
char *p2 = str + strlen(str) - 1;
char *p3 = NULL; // 用于将单词逆序
char tmp;
while (p1 < p2)
{
tmp = *p1;
*(p1++) = *p2;
*(p2--) = tmp;
}
puts(str);
// 再将每一个单词进行逆序,单词通过空格去找
p1 = str;
p2 = str;
while(*p2) // p2找到字符串结束为止
{
if (*p2 == ' ') // 找到一个单词,要将前面的单词进行逆序
{
p3 = p2 - 1;
while (p1 < p3)
{
tmp = *p1;
*(p1++) = *p3;
*(p3--) = tmp;
}
p1 = p2 + 1;
}
p2++;
}
p3 = p2 - 1;
while (p1 < p3)
{
tmp = *p1;
*(p1++) = *p3;
*(p3--) = tmp;
}
puts(str);
return 0;
- 指针方式逆序数组
- 指针的方式逆序数组
- 使用指针的方式实现数组逆序
- 指针逆序输出数组
- 指针逆序数组
- 指针-数组逆序
- 通过指针逆序数组
- 用指针逆序一个数组
- 用指针实现数组逆序
- 句子逆序 上海 指针数组
- 用指针实现逆序存放数组元素
- 逆序(数组和指针的使用)
- 利用指针对数组&句子进行逆序
- 使用函数和指针实现数组的逆序输出
- 第十六周OJ项目1逆序输出数组(指针)
- 第十六周OJ——1 指针逆序输出数组
- 第17周 利用指针逆序输出数组
- 利用指针实现10个数组元素逆序交换
- 字符串的实用操作
- JVM虚拟机个人总结(二)
- 关于springAOP,面向切面编程
- UVa232-Crossword Answers
- Qt QTableWidget小结
- 指针方式逆序数组
- 二叉树的计算的一些算法
- 指针数组
- MySQL创建和删除索引的语法
- Win10下安装Ubuntu16.04双系统
- 递归实现十进制数转十六进制数
- pandas 第2课
- I/O流
- RecyclerView的item点击事件监听器