美文网首页
8-二维数组/字符串/指针

8-二维数组/字符串/指针

作者: SoftKnife | 来源:发表于2015-07-15 10:40 被阅读49次
People Lack Willpower,Rather Than Strength!

1.二维数组与参数

  • 1.二维数组的元素作为函数参数

    • 二维数组的元素就相当于基本数据类型变量,作为函数参数与变量相同
  • 2.二维数组中的一维数组作为函数

    • 二维数组的一维数组实际上就是一个一维数组,作为函数参数与一维数组相同
  • 3.二维数组作为函数参数

    • 二维数组作为函数参数是地址传递
      函数形参 void test(char c[][x]);
      • 二维数组作为函数形参,参数中一维数组的元素个数不可以省略:c[][x]√
      • 二维数组作为函数参数,在被调函数中不能获得其有多少行,需要通过参数传入
      • 二维数组作为函数参数,在被调函数中可以计算出二维数组有多少列:sizeof(c[0])

2.字符串

  • 1.概念

    • 字符串是位于双引号中的字符序列. 在内存中以“\0”结束,所占字节比实际多一个!
  • 2.字符串的初始化

    • 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。

    所以问题是如果用指针定义一个字符串(char *p = "abc";),而指针又不能用来存放字符串,该字符串放哪里了???? 答:放在常量区!⭐️

  • 3.字符串的输入

    char ch[10];
    scanf("%s",ch);
    // 应该是:string\0再回车吧!错,不用加\0,因为一旦输入字符,未满10个,那么后面的空位会自动填充0!
    但是:  
    char c[5];
    c[0] = '0';
    printf("%d\n",c[2]);// 乱码

3.指针基本概念

  • 变量地址:系统分配给"变量"的"内存单元"的起始地址!

    • 由于通过地址能找到所需的变量单元,可以说地址指向该变量单元。因此将地址形象化的称为“指针”. 这么说来地址就是指针常量.用来存放该常量的变量就是指针变量,且该变量只能存储地址! ⭐️
  • 指针变量定义说明:变量类型 *p

    • 变量类型:说明该指针变量适用于存放该类型数据的首地址(但不绝对); 用该指针变量取值时,是以该类型为单位进行的!

    指针也可以被声明为全局、静态局部和局部的.

    疑问:地址是常量数据的,还是内存单元的,亦或是其管理者-变量的?⭐️
    应该是变量的吧?好像不可以对常量取地址!
    好像又不对,"string"这样字符串不是可以赋值给指针变量吗?
    
    "在计算机中所有数据都存储在内存单元中,而每个内存单元都有一个对应的地址, 只要通过这个地址就能找到对应单元中存储的数据." 由这句话可以看出地址是属于内存单元的!
    
    
  • 什么是野指针?空指针?

    • 获得未知内存空间首地址的指针变量!⭐️
    • 获得NULL值(ox0)的指针变量!

      NULL/nil is an rvalue(右值) of type 'void *',address of which cannot be taken ! 所以,我们可以简单把NULL当做指针常量(地址),值为ox0!

相关文章

  • C++ 指针2

    字符指针作为函数参数, 求字符串的长度 比较两个字符串的大小 字符串复制 二维数组与指针 输入全体二维数组, 求元...

  • 8-二维数组/字符串/指针

    1.二维数组与参数 1.二维数组的元素作为函数参数二维数组的元素就相当于基本数据类型变量,作为函数参数与变量相同 ...

  • 数组指针和指针数组

    1.数组指针(又称行指针) 二维数组赋给一指针时: 2.指针数组 二维数组赋给一指针数组: 小结:数组指针只是个指...

  • 二维数组和指针

    二维数组和指针 ⑴用指针表示二维数组元素。 要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。 一...

  • 二维数组与指针、指针数组、数组指针的用法

    二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知...

  • 指针数组-访问二维数组

    用指针数组访问二维数组

  • 11.1 字符串和指针

    关于指针输出字符串 将字符串看作指针 使用指针表示法创建字符串 数组和指针的区别、数组名heart 是常量,指针名...

  • 2019-08-28(二级指针和二维数组)

    一个二级指针**p和二维数组arr 指针数组 code

  • C++ 进阶篇

    指针数组数组的元素是指针类型Point *pa[2];指针数组与二维数组的差别指针数组的元素在内存中不一定连续,二...

  • 12.15C基础数组和指针的学习

    笔记: 一 数组 1.二维数组 2.指针 2.二级指针

网友评论

      本文标题:8-二维数组/字符串/指针

      本文链接:https://www.haomeiwen.com/subject/bjouqttx.html