用指针来写
时间: 2023-08-21 13:05:45 浏览: 35
好的,你的问题是如何用指针来写程序?
指针是C语言中非常重要的一个概念,它可以让我们直接访问内存地址,从而实现对内存的高级操作。下面是一个使用指针的例子:
```
#include <stdio.h>
int main() {
int a = 10;
int *ptr;
ptr = &a; // 将指针ptr指向变量a的内存地址
printf("a的值:%d\n", a);
printf("ptr指向的内存地址:%p\n", ptr);
printf("ptr指向的内存地址中的值:%d\n", *ptr);
*ptr = 20; // 通过指针修改变量a的值
printf("a的新值:%d\n", a);
return 0;
}
```
这个程序定义了一个整型变量a和一个整型指针ptr,然后将ptr指向a的内存地址。我们可以通过指针ptr访问a的值,也可以通过指针修改a的值。
注意,在使用指针时需要注意指针的类型和指针所指向的内存地址的类型必须匹配,否则会产生不可预知的错误。
相关问题
可以用指针格式写吗
当然可以。在C语言中,指针是一种非常重要的数据类型,可以用来存储变量的内存地址。下面是一个简单的例子,演示了如何使用指针格式来声明和使用变量:
```
#include <stdio.h>
int main() {
int num = 10;
int *ptr = #
printf("num 的值是:%d\n", num);
printf("ptr 存储的地址是:%p\n", ptr);
printf("ptr 指向的值是:%d\n", *ptr);
return 0;
}
```
在上面的例子中,我们首先声明了一个整型变量 `num`,并将其赋值为 `10`。然后,我们声明了一个指向整型变量的指针 `ptr`,并将其初始化为 `&num`,即 `num` 的地址。接下来,我们通过 `printf` 函数分别输出了 `num` 的值、`ptr` 存储的地址以及 `ptr` 指向的值(也就是 `num` 的值)。需要注意的是,在输出 `ptr` 存储的地址时,我们使用了 `%p` 格式说明符,它会将指针的值以十六进制形式输出。在输出 `ptr` 指向的值时,我们使用了 `*ptr`,表示获取指针 `ptr` 所指向的变量的值。
总之,指针是C语言中非常重要的概念,掌握好指针的使用方法对于编写高效的程序非常有帮助。
用指针写strrev函数
可以通过以下方式使用指针来实现strrev函数:
```c
#include <stdio.h>
#include <string.h>
void strrev(char *str) {
char *start = str;
char *end = str + strlen(str) - 1;
char temp;
while (start < end) {
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "hello world";
printf("Before reversal: %s\n", str);
strrev(str);
printf("After reversal: %s\n", str);
return 0;
}
```
在上面的代码中,我们使用了两个指针start和end,分别指向字符串的开始和结束。在while循环中,我们交换这两个指针所指向的字符,直到它们相遇或者交错为止。这样,就完成了字符串的翻转。