为什么用指针

指针的前世今生

上一篇内容我们讲了如何使用 C 指针, 总结起来一句话, 函数全加星, 调用取地址.

但是, 我们没有思考过, 为啥就一定要有指针呢?

先说结论: 连续单元的定值表示.

我们来解读这段话, "Hello World" 是一个很明显的连续单元, 我们取一个定制表示它.

#include <stdio.h>

int main() {
    
    char greet = "Hello World";
    printf("%s", greet);
    return 0;
}

这样描述, 可能连编译都通过不了, 原因很简单, char只能表示一个值, 你把他当一个数组用, 有没有什么办法用一个值来表示呢, char* 星号一般意义有 N 个, 这里也是这个意思, 我们用 char* 代替 char 发现他正常工作了.

#include <stdio.h>

int main() {
    
    char * greet = "Hello World";
    printf("%s", greet);
    return 0;
}

不过这样写是极其不严谨的, 字符串的定义是: 以 char 连接连续单元, 用 \0 来表示结束. 所以我们再次优化代码.

#include <stdio.h>

int main() {
    
    char * greet = "Hello World\0";
    printf("%s", greet);
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/swyw/p/12390843.html
今日推荐