美文网首页
7.C语言-指针

7.C语言-指针

作者: 后备干部 | 来源:发表于2017-01-24 21:02 被阅读0次

1. 二维数组

* 把二维数组a分解为一维数组a[0],a[1],a[2]之后,设p为指向二维数组的指针变量。可定义为:
* int (*p)[4]
* 它表示p是一个指针变量,它指向包含4个元素的一维数组。若指向第一个一维数组a[0],其值等于a,a[0],或&a[0][0]等。
* 而p+i则指向一维数组a[i]。
* 从前面的分析可得出*(p+i)+j是二维数组i行j 列的元素的地址,而*(*(p+i)+j)则是i行j列元素的值。
* 二维数组指针变量说明的一般形式为:
* 类型说明符  (*指针变量名)[长度]
* 其中“类型说明符”为所指数组的数据类型。“*”表示其后的变量是指针类型。“长度”表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。

2.字符指针变量和字符数组

* 虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈……
* 主要概括起来有以下几点:
* 1. 字符数组由若干个元素组成,每个元素中  放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址),决不是将字符串放到字符指针变量中。
* 2. 赋值方式。对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。
     char  str[20];
     str=″I love Fishc.com!″;
  
  而对字符指针变量,可以采用下面方法赋值:
     char*a;
     a=″I love Fishc.com!″;
  但注意赋给a的不是字符,而是字符串第一个 元素的地址。
* 3. 对字符指针变量赋初值:
    char *a=″I love Fishc.com!″;
       等价于
      char*a;
    a=″I love Fishc.com!″;

    而对数组的初始化:
    char str[20]={″I love Fishc.com!″};
    不能等价于
    char str[20];
    str[ ]=″I love Fishc.com!″;
* 4. 如果定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址也就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址值,则它并未具体指向一个确定的字符数据。  
* 我们举个例子来说明
* 如:   char str[10];
      scanf(″%s″,str);
           以上是完全可以的!
* 而常有人用下面的方法,目的是想输入一个字符串,虽然一般也能运行,但这种方法是危险的 :
             char*a;
      scanf(″%s″,a);

3. 有关指针的数据类型的小结

QQ20170125-1.png

4. void指针

* ANSI C新标准增加了一种“void”指针类型,即不指定它是指向哪一种类型数据的指针变量。
* 例如:void *p;
* 表示指针变量p不指向一个确定的类型数据,它的作用仅仅是用来存放一个地址。
* void指针它可以指向任何类型数据。也就是说,可以用任何类型的指针直接给void指针赋值。但是,如果需要将void指针的值赋给其他类型的指针,则需要进行强制类型转换。

相关文章

  • 7.C语言-指针

    1. 二维数组 2.字符指针变量和字符数组 3. 有关指针的数据类型的小结 4. void指针

  • 7.C语言 结构体

    结构体所占存储空间必须是最大成员所占字节数的倍数 指向结构体的指针 利用指针访问结构体的成员 (*p).成员名称 ...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

  • Go语言-指针

    Go语言中的指针不同于C语言,Go语言的指针使用方法要简单很多。当然和C语言从指针定义到指针的使用都有很大的不同。...

  • go语言值传递与指针传递

    go语言指针 go语言作为静态编译型语言,具有指针类型,但是不提供对指针的移位危险操作,防止指针的越界等问题。 g...

  • Go语言 指针

    指针 概念 Go语言的指针和C语言一样也是用来保存地址的变量 格式 普通指针 指向数组的指针 注意点 GO语言中只...

  • 2018-06-05

    C语言指针教程 (一)什么是C语言指针指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。...

  • C语言指针总结大学霸IT达人

    C语言指针总结大学霸IT达人 C语言的指针是C语言区别其它语言的最主要的特定之一。有了指针,C语言就可以抛开所有束...

网友评论

      本文标题:7.C语言-指针

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