当前位置: 首页 > news >正文

网站不让百度收录极验验证 wordpress

网站不让百度收录,极验验证 wordpress,wordpress 无刷新评论,网站开发实战目录 导读1. 字符数组1.1 字符数组的创建1.2 字符数组的初始化1.3 不同初始化在内存中的不同1.3.1 strlen测试1.3.2 sizeof测试1.3.3 差异原因 1.4 字符数组的使用 2. 数组越界3. 数组作为函数参数博主有话说 导读 我们在前面讲到了 int 类型的数组的创建和使用#xff1a; 一… 目录 导读1. 字符数组1.1 字符数组的创建1.2 字符数组的初始化1.3 不同初始化在内存中的不同1.3.1 strlen测试1.3.2 sizeof测试1.3.3 差异原因 1.4 字符数组的使用 2. 数组越界3. 数组作为函数参数博主有话说 导读 我们在前面讲到了 int 类型的数组的创建和使用 一维数组和二维数组的使用int类型 今天我们来了解字符数组的创建和使用还会提到关于数组越界的问题和数组作为函数参数的用法。 这里还有个基于数组而制作的小游戏——三子棋感兴趣的小伙伴可以进去看一下。 1. 字符数组 我们在剖析数据在内存中的存储中介绍到 字符型数据是以字符的ASCII代码存储在存储单元中的一般占一个字节。由于ASCII代码也属于整数形式因此在C99标准中把字符类型归纳为整型类型中。 C语言中没有字符串类型也没有字符串变量字符串是存放在字符型数组中的。 1.1 字符数组的创建 用来存放字符数据的数组是字符数组 一维数组 char arr[10];//一维数组// 定义了一个大小为10的字符数组二维数组 char arr[3][5];//创建一个3行5列的二维字符数组1.2 字符数组的初始化 数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。 char arr1[3] {a,98, c}; char arr2[] {a,b,c}; char arr3[] abc; char arr[3][10] {hello, world, c};1.3 不同初始化在内存中的不同 但是对于下面的代码要区分内存中如何分配。 char arr2[] {a,b,c}; char arr3[] abc;1.3.1 strlen测试 我们可以用strlen函数来进行测试strlen函数是用来计算字符串的长度的计算的是实际长度不包括 ’ \0 ’ 在内 int main() {char arr2[] { a,b,c };char arr3[] abc;int len1 strlen(arr2);int len2 strlen(arr3);printf(arr2字符串长度%d\narr3字符串长度%d\n, len1, len2);return 0; }可以看到第一个和第二个字符串长度的差异这就是两者的区别 1.3.2 sizeof测试 int main() {char arr2[] { a,b,c };char arr3[] abc;int sz1 sizeof(arr2);int sz2 sizeof(arr3);printf(arr2字符串大小%d\narr3字符串大小%d\n, sz1, sz2);return 0; }1.3.3 差异原因 arr2[] 和 arr3[] 存储的东西是相同的也就是一组字符的集合但是它们在内存中存储的方式不同这也就导致了它们在使用上的一些细微差别。 对于arr2[]来说它是一个字符数组也就是一组字符的集合每个字符都占用一个字节的空间。在内存中它是连续存储的因此每个字符都有自己的地址。对于arr3[]来说它是一个以null结尾的字符串也就是一组字符的集合每个字符仍然占用一个字节的空间。但是在内存中它不同于arr2[]它会在字符串的结尾处添加一个null‘\0’字符来表示字符串的结束。因此在内存中它需要额外的一个字节来存储null字符也就是说字符串abc在内存中占用4个字节的空间。 1.4 字符数组的使用 一维字符数组 int main() {char name[] { J, o, h, n, \0 }; // 注意要以 \0 结束int length sizeof(name) / sizeof(name[0]); // 计算数组长度for (int i 0; i length; i) {printf(%c , name[i]);}return 0; }二维字符数组 int main() {// 定义二维字符数组char arr[3][10] { hello, world, c };// 输出二维字符数组for (int i 0; i 3; i) {printf(%s\n, arr[i]);}return 0; }2. 数组越界 数组的下标是有范围限制的。 数组的下规定是从0开始的如果数组有n个元素最后一个元素的下标就是n-1。 所以数组的下标如果小于0或者大于n-1就是数组越界访问了超出了数组合法空间的访问。 C语言本身是不做数组下标的越界检查编译器也不一定报错但是编译器不报错并不意味着程序就是正确的 所以程序员写代码时最好自己做越界的检查。 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int i 0;for (i 0; i 10; i){printf(%d , arr[i]);//当i等于10的时候越界访问了}return 0; }这种问题会导致程序出现运行时错误通常会导致程序崩溃、异常或错误的输出。 3. 数组作为函数参数 往往我们在写代码的时候会将数组作为参数传个函数 比如我要实现一个冒泡排序函数 判断下面代码是否能够实现排序 void bubble_sort(int arr[]) {int sz sizeof(arr) / sizeof(arr[0]);int i 0;for (i 0; i sz - 1; i){int j 0;for (j 0; j sz - i - 1; j){if (arr[j] arr[j 1]){int tmp arr[j];arr[j] arr[j 1];arr[j 1] tmp;}}} } int main() {int arr[] { 3,1,7,5,8,9,0,2,4,6 };bubble_sort(arr);//是否可以正常排序int i 0;for (i 0; i sizeof(arr) / sizeof(arr[0]); i){printf(%d , arr[i]);}return 0; }结构并没有帮助我们实现排序我们来进入调试查看 查看两个值 接下来进入排序函数 调试之后可以看到bubble_sort 函数内部的sz 是1原因就在于我们传递过去的是数组的首元素地址bubble_sort 函数内部的sz计算的也仅仅是首元素的大小所以正确代码应该为 void bubble_sort(int arr[], int sz)//参数接收数组元素个数 {int i 0;for (i 0; i sz - 1; i){int j 0;for (j 0; j sz - i - 1; j){if (arr[j] arr[j 1]){int tmp arr[j];arr[j] arr[j 1];arr[j 1] tmp;}}} } int main() {int arr[] { 3,1,7,5,8,9,0,2,4,6 };int sz sizeof(arr) / sizeof(arr[0]);bubble_sort(arr, sz);int i 0;for (i 0; i sz; i){printf(%d , arr[i]);}return 0; }博主有话说 关于更多的数组对于sizeof和strlen函数传参的问题可以看——不同的数组传参在sizeof和strlen中的不同 今天就到这里关注博主查看更多内容
http://www.hkea.cn/news/14268586/

相关文章:

  • wordpress模板网站导航长沙做网站设计公司
  • 网站版式有哪几种网站建设哪个最好
  • 成都公司注册哪家好海城seo网站排名优化推广
  • 网站建设思维导图模板企业服务网站
  • 二手交易网站建设内容策划肇庆软件建网站公司
  • 西宁做网站的工作室装修公司哪家好一些呢
  • 顾问式 网站外贸营销型网站2018
  • 购物网站建设教程叶县网站建设
  • 帮别人做网站哪里可以接单从化专业做网站
  • 做音乐网站开源网站建设实习心得
  • 天站网站建设龙岩网站建设
  • 宁波网站排名优化seo创建公司主页
  • 南昌市网站备案免费网站大全app
  • 网站地图深度做多少合适网站建站公司
  • 网站建设所需服务器谷歌广告联盟怎么做
  • 外贸网站建设 佛山什么是h5宣传
  • 优秀企业网站首页doc文件打开乱码怎么办
  • h5网站页面设计g2g有哪些网站
  • 网站封装成app可以做热更新电影网站logo设计
  • 无锡网站制作优化推广公司申京效率值联盟第一
  • 做里番网站犯法吗有限责任公司公司章程范本
  • 哈尔滨网站建设论坛怎么做买东西的网站
  • 网站建设英文合同郑州贴吧
  • 企业网站排名技巧好的外贸平台
  • 开放平台 的优势 传统门户网站vue做的网站大全
  • 酷炫网站设计软件开发需要什么技术
  • 网站建设的几种结构网站开发量
  • 山东省住房和城乡建设部网站优秀的app界面设计案例
  • 唐河县住房和城乡建设局网站做网站成品
  • 为什么实验楼网站上做实验这么卡php成品网站