当前位置: 首页> 教育> 锐评 > 现代家装设计公司_seo谷歌推广_乌鲁木齐seo_廊坊快速排名优化

现代家装设计公司_seo谷歌推广_乌鲁木齐seo_廊坊快速排名优化

时间:2025/8/27 4:13:24来源:https://blog.csdn.net/ZMXdecode/article/details/142431933 浏览次数:0次
现代家装设计公司_seo谷歌推广_乌鲁木齐seo_廊坊快速排名优化

一、C语言中,数组和字符串

  • 1、C语言中,定义一个数组后,数组名保存的是这个数组的首地址。类似一个指向数组第一个元素的指针,但是这个指针不能重新指向。
  • 2、字符串在C语言中是通过字符数组来实现的,也就是说字符串还是保存在数组里面的。字符串实际上是一个字符序列,它以空字符(null character,即\0)作为结束标志。这意味着在C语言中,当你声明一个字符串时,你需要为这个空字符预留一个额外的位置,因为字符串的长度(不包括结尾的空字符)和数组的大小之间有一个单位的差异。
char greeting[6] = "Hello"; // 这是不正确的,因为数组大小不足以存储结束符'\0'  
char greeting[7] = "Hello"; // 正确的,'\0'会被自动添加到数组的末尾
char greeting[] = "Hello";  
char *ptr = greeting;  
printf("%c\n", *ptr); // 输出 'H'

二、数组名相关的打印内容

#include "stdio.h"int main() {char greeting[] = "Hello";char *ptr = greet;
//    printf("%c\n", *ptr); //printf("指针使用s: %s\n", ptr); //  指针指向数组名, 打印这个指针的值,格式化输出的是字符,就打印出这个字符的内容printf("指针使用p:  %p\n", ptr); //  指针指向数组名,打印这个指针的内容,格式化输出的是地址,就打印出这个字符的地址printf("指针加上求地址符的p:  %p\n", &ptr); //   这个打印出来的是指针的地址。printf("变量名使用s:  %s\n", greet);printf("变量名使用p:  %p\n", greet);printf("变量名加上求地址符的地址: %p\n", &greet); return 0;
}

在这里插入图片描述

  • 可以看出数组变量名本身就可以当成一个保存元素地址的变量

  • 容易混淆的地方:数组名greet的使用

  • 1、如果对这个变量使用求地址符,&greet,这个值和ptr的值一样,并不是ptr地址的地址。greet是第一个元素的地址,&greet是这个数组的地址。

    • 如果用一个指针先指向数组名,再求地址,结果就不一样了,结果就是greet地址的地址
  • 2、数组名保存的地址,是第一个元素的地址,这个也很模糊。我们说的 数组的地址和数组第一个元素的地址,这两个地址打印出来是一样的。那为什么要强调这两个地址的不同呢?

因为指针不仅要确认指向的地址的开头,还要确认这个地址怎么解析。如果是char类型,就按char类型取出,如果是数组类型,就按这个数组的类型,取出这个存放在数组里的数。所以强调不同的原因是因为它们的类型是不同的。

关键字:现代家装设计公司_seo谷歌推广_乌鲁木齐seo_廊坊快速排名优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: