登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[学习笔记] 字符数组和字符指针变量的区别

[复制链接]
发表于 2017-1-22 21:20:15 | 显示全部楼层 |阅读模式
学习笔记
学习科目: c语言-指针
学习安排: 视频,vc++上机练习
开始时间: 2017-01-20
结束时间: 2017-01-22
本帖最后由 葡萄糖雅雅雅 于 2017-1-30 11:31 编辑

1、字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第一个字符的地址),绝不是将字符串放到字符指针变量中

2、赋值方式:对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。
  char a[10];
   a= " chai ke ya ";
  而对字符指针变量,可以采用下面方法赋值:
  char *a;
   a= " chai ke ya ";
   但注意赋给a的不是字符,而是字符串元素的第一个地址。

3、对字符指针变量赋初值:
char *a = " chai ke ya ";
  等价于
       char *a;
       a = " chai ke ya ";
   而对数组的初始化:
  char a[10]={"chaikeya"};
   不等价于
        char a[10];
        a[]="chaikeya";

4、如果定义了一个字符数组,在编译时为他分配内存单元,他有确定的地址。
   而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址,也就是说,该字符变量可以指向一个字符型数据,但如果未对他赋予一个地址值,则他并未具体指向一个确定的字符数据。
eg:char a[10];
   scanf("%s",a);
用指针eg:char *a;
         scanf("%s",a);()

5、指针变量的值是可以改变的
eg;#include <stdio.h>

void main()
{
       char*a = "chai ke ya ";
       printf("%s\n",a);

       a+=5;
       printf("%s\n",a);
}

另:若定义了一个指针变量,并使它指向一个字符串,就可以用下标形式引用指针变量所指的字符串中的字符
QQ图片20170122211955.png


...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表