第08天C语言(00):笔记总结

01-二维数组-基本概念
 二维数组 : 数组中的每一个元素又是一个数组,那么这个数组就称之为二位数组

  元素类型 数组名称[一维数组的个数][每个一维数组的元素个数];

  元素类型 数组名称[行数][列数];

  

  元素类型 : 说明二维数组中 每个一维数组存储什么类型的数据

  一维数组的个数: 说明二维数组 有多少个元素

  每个一维数组的元素个数: 说明 二维数组中 每一个一维数组的元素个数
02-二维数组-注意点
   1.定义的同时初始化

   2. 先定义再初始化

   3.完全初始化

   4.不完全初始化

   5.省略元素个数的写法

  

   6.错误写法

   注意点 : 每个一维数组的元素个数 不能省略
03-二维数组和函数
 以后 只要看到函数的参数 是一个数组,那么就是地址传递

  在函数中修改形参的值 会影响实参
04-字符串-基本概念
 用双引号 引起来的就是字符串

  字符串 是由什么组成的? 字符"串", 羊肉"串"
05-字符串-常用方法1
 /*

  printf函数

     弊端 : 如果想要换行, 必须加上\n

     优点 : 可以自定义格式化 需要输出的字符串,也就是 可以按照我们需要的格式输出

  puts函数

      优点 : 可以自动换行

      缺点 : 不可以自定义格式,只能原样输出

  

  scanf函数

   1.利用scanf接收字符串的注意点

   scanf接收字符串, 会以空格, tab, 回车作为结束符号, 也就是说利用scanf接收字符串时,字符串中不能出现空格,tab,回车

  

  gets函数

      warning: this program uses gets(), which is unsafe.

      如果是用gets接收字符串,系统会提示 我们正在使用一个不安全的方法接收字符

      优点 : 如果利用gets接收字符串,可以在字符串输入空格,tab

  strlen函数

     strlen的原理 : 从传入的地址 开始 逐个取出字符串, 每取出一个 让计算器+1, 知道遇到\0位置

     计算字符串的个数(不包含\0)

     自己写一个strlen函数

  

      //  自定义strlen函数

      int myStrlen(char str[])

      {

             int count = 0;

         while (str[count] != '\0') {

             count++;

         }

         return count;

      }

  

  */
06-字符串-常用方法2
 #include <string.h>

  1.字符串拼接

     原理 : 首先遍历第一个字符串,知道遇到\0,然后取出第二个字符串中的字符,从\0的位置开始添加

  

     strcat函数 strcat(dest, src) --- 将src中的数据 拼接到dest后面

       注意 : 要想使用字符串的拼接 函数,那么dest必须是一个数组,并且数组的长度 必须大于拼接之后的长度 (str必须足够长)

       如果dest的数组的长度,不能完全 存放dest+scr+\0 那么就会报错

     strncat函数 strncat(dest, src, len) ---  char * 相当于 dest chost char * 相当于 scr size_t 需要拼接的个数

  

  2.字符串拷贝

     strcpy函数 strcpy(dest, src) --- char * 目标 , const char * 源

      strcpy函数会将 源的数据拷贝到目标中, 并且会覆盖目标中原有的数据

       目标的容器必须 能够存放 拷贝的数据,如果容器 不够就会报错

          strcpy(str1, str2);

  

     strncpy函数 strncpy(dest, src, len)

         拷贝操作 是逐个替换, 拷贝了几个 就替换几个

         str1 能够存放元素的个数 - \0

  

  3.字符串比较

     strcmp的原理 : 取出字符串中的每一个字符 进行逐个比较, 如果发现不相等 就不会继续往下 比较

     如果该值 等于0, 那么证明 两个字符串相等

     如果该值 小于0, 那么证明 str 小于 str2

     如果该值 大于0, 那么证明 str 大于 str2
07-字符串-练习
 1.编写一个函数 char_contains(char str[],char key),如果字符串str中包含字符串key 则返回数值1,否则返回数值0(while 和 for循环实现)
08-字符串数组
 如果想存储一堆字符串 那么可以使用字符串数组

 说白了 字符串数组 就是二维数组
09-指针-基本概念
 如何定义指针变量

      普通变量

      数据类型 变量名称;

      指针变量

      数据类型 * 变量名称;

      数据类型 : 说明 将来指针变量能够保存 什么类型的变量的地址

      注意 : 指针变量是什么类型 : 那么将来就只能保存什么类型的变量的地址

      例如 : 指针变量是int, 那么将来就只能保存 int类型变量的地址

      * : 没有任何特殊含义, 仅仅是为了标识 这是一个指针变量

      变量名称 : 用于区分不同的变量

  

      int num; // 普通变量     num = 10;

      int * p; // 指针 , 在64位的编译器下 占用8个字节

      p = # // 将num的地址 存储到p这个地址中

      (重点 : p = &num --- *p == num)
10-指针-练习1
 #pragma 1.定义一个函数交换两个变量的值

 void swap(int *v1,int *v2)

 {

     int temp = *v1;

     *v1 = *v2;

     *v2 = temp;

 }
11-指针-练习2
 #pragma 1.要求定义一个函数,传递三个值,返回这三个值和,差,平均值

 int demo(int v1,int v2,int v3,int *p1,int *p2);
12-指针-注意点
 1.指针只能用于保存地址

  2.同一个变量可以有有多个指针 指向他

  3.指针的指向可以修改

  4.不要访问野指针

     错误写法

     int *p;  // EXC BAD ACCESS ✅正确写法 int *p = NULL; // 0

     printf("%i\n",*p);

  5.指针类型 是什么类型,就只能指向什么类型的数据

     错误写法

         double doubleValue = 0.55;

         int *p = &doubleValue; (打印0.00) ✅正确写法需要把int 修改成 double
13-多级指针
 /*

  char c = 'a';

  char *cp;

  cp = &c;

  char **cpp;

  cpp = &cp;

  

  *cp == c

  *cpp == cp;

  **cpp == *(*cpp) == *cp == c

  

  多级指针的操作,最简单的方式,就是通过几颗星来存储,就通过几个星来访问

  还有一种方式 就是画图,看图片中有几个箭头,就用几颗星来访问

  */
14-指针为什么要分类型
 指针为什么要分类型?

 因为当我们利用指针 去取值的时候, 系统就会自动根据指针的类型来确定 应该去多少个字节中的值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,422评论 3 44
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 3,882评论 2 13
  • 离315过去一个月,生活在改论文和混日子中一点点过去,马上就要滚了。 大同今天下了雨,尽管花都开始谢了,却依旧很冷...
    Quasimodo__K阅读 344评论 0 1
  • 幸好幸好,生活在一个不是非黑即白的世界 目录 第一章 二、 我住在奶奶家,也很少再去幼儿园了,即便我奶奶家离幼儿园...
    化宇阅读 276评论 2 2
  • 二十二 晚间雨早住了,李袈澜邀了凤舞并红鸢过来一起用饭。观二人情形,红鸢貌似要暂住在凤舞这里,李袈澜也乐是多个人陪...
    笔间流年阅读 249评论 2 1