C语言与指针 您所在的位置:网站首页 字符指针和字符串指针一样吗为什么 C语言与指针

C语言与指针

2023-05-17 18:08| 来源: 网络整理| 查看: 265

最近着手做mit6.828的lab,发现对C语言的指针已经忘了一干二净,在此复习一下C语言的指针。

#include #include #include void main() { int a = 10; char buf[10]; char* s = buf; scanf("%s", buf); printf("buf = %s\n", buf); printf("*s = %c\n", *s); printf("s = %s\n", s); printf("buff address = %d\n", buf); printf("decimal s = %d\n", s); printf("hex s = %p\n", s); printf("s + 1 = %s\n", s + 1); }

首先定义字符数组buf,他的大小位十个字符长度,该数组的首地址其实也就为buf。

随后定义一个指针s指向字符数组的首地址,即char* s = buf。

随后对字符串进行输入,假设输入abc

文件输出为:

buf = abc *s = a s = abc buff address = -10594 decimal s = -10594 hex s = 0x7fffffffd69e s + 1 = bc

随后查看调试信息,可以看到%s遇到’\0’时停止输出。s+1可以使得s指针指向数组的第二个元素,所以当输出s+1的%s时,只从第二个元素开始输出了。随后,如果以十进制输出s,可以看到s和buf的首地址是一样的。 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有