c语言期末复习2

目录

1.数组

1.一维数组和二维数组

2.字符数组

      字符数组的函数(仅字符数组)

2.指针

1.通过指针引用数组

2.通过指针引用字符串.

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


1.数组

1.一维数组和二维数组

   数组可以在定义时对各元素赋初值,但不能用赋值语句对字符数组中全部元素整体赋值

       eg:int  a[10]={1,2,3,4};

       定义数组时下标不可省,初始化时可以

       数组名就代表数组元素的首地址

       [   ]中只能放常量,赋值表达式,不可放变量

      eg:int  a[3][7]={{0,1,2},{0,3,4},{0,5,6,7}};

2.字符数组

       eg:char   a[10]={"fan gao"};与

               char   a[10]="fan gao";与

               char   a[10]={‘f’,‘a’,‘n’,‘g’,'a','o’,‘\0’};等价

       字符串后面默认+\0,占一个位置

      字符数组的函数(仅字符数组)

  1. 输入字符数组的函数gets 
  2. 输出字符数组的函数puts

         if用printf输出"i  love  china"则只能输出‘i’

         but用puts函数输出这段话则可以完整输出

         puts函数遇到\0立即停止

      3.连接数组的函数strcat  

        strcat  (字符数组1,字符数组2)

      4.字符串复制函数strcpy

        strcpy(字符数组1,字符串2)

     5.字符串比较函数strcmp

       strcmp(字符串1,字符串2)

      =0是字符串1和字符串2相等

      >0是字符串1大于字符串2

       是利用字符的ASCII码值来比较的

    6.测字符串长度函数

      strlen(字符数组)

       测量的是字符串的实际长度

2.指针

  • int  *p=&a;

 p是指针变量,p指向a,*前面必须有int类的

将a的地址存放到p中。

  • float  *p;p=&a;

a是整型变量,系统会把&a的基类型改为float型.然后赋值给p.

  • 指针值+1是让指针移动4个字节
  • *p=1,的意思是把整数1赋值给p所指的变量
  • *p1=*p2。p2所指向的元素赋值给p1指向的元素。

1.通过指针引用数组

       int  a[10]={1,3,5,7,9};

       int  *p;

       p=&a[0];

  1.        a[i]的地址

            p+i           ✌️         a+i  

     2.        a[i]

        *(p+i)         ✌️       *(a+i)

    是将a数组首元素的地址赋值给p.

  •   p指向数组的某个元素,则p+1指向的是数组的下一个元素.
  • 两个地址无意义,如p1+p2无意义 ,但p1-p2有意义

        eg:如p1指向的是a[7]

                p2指向的是a[4]

               则p1-p2=3。

  • 如p指向a[0]。

       则p++指向a[0]

       则++p指向a[1]

  • *和&运算级相同,结合方向是从右向左
  • *和++运算级相同,结合方向从右向左
  • &和*互相相消

2.通过指针引用字符串.

    char  *string;

    string="i  love  China";

  •   把字符串第一个元素的地址赋值给字符指针变量(字符串实际上是字符数组)
  • 通过字符数组名和字符指针变量可以输出一个字符串,而对一个数值型数组,是不能这样输出的,因为变量名代表的是首元素的地址。

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

  • 字符指针变量🉑,但字符数组不可

  char  *a;

  a=“i love  China!”

  char  string[14];

string[ ]=“i  love  China!”

👌string[0]=‘i’;

👌char string[14]=“i love  China”;

  • 字符数组中各元素的值是可以改变的(可以对它们再赋值),但字符指针变量指向的字符串常量中的内容是不可以被取代的

char  *b=“i  love  China”

char  a[14]=“house”

a[2]=‘i’

b[3]=‘v’            非法,字符指针变量指向的字符串常量的内容不能改变。

     

      

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值