C语言数组与字符串小知识点


一、C语言数组使用,存放规则等

1、如:数组int ages[];是一种错误的写法。

       1>    如果想再定义数组的同时进行初始化,数组元素个数必须是常量,或者不写。

                                 int a = 5;      int ages[a]={1,3,5};       也是错误的,  []    里面只能放常量。

       2>    int a = 5;      int ages[a];       是正确的。因为没有进行初始化。

2、 .想计算某个数组长度,可以用 int count  =   sizeof(ages) /  sizeof(int)。


3、  数组在内存中存放规则:

       1>   数组分配内存是按照内存地址由小到大依次给数组分配内存空间。

                           比如 char cs [ 5 ]  =  { 'a', '  b ', ' c ', ' d ', ' e ' };

                            那么首先CS会占用内存中后面的5个字节。如ffc9-ffc5,之后的每个存储空间会从上到下依次存储,比如

                            ffc5存储a;     ffc6 存储b;   依此类推。

        2>  数组名就代表数组的首地址。

                           Printf("%s",name)和Printf("%s",&name)这两个是一样的,因为name是一个数组,所以name传的就是数组的首地址。

                     3>  数组作为函数参数,可以省略元素个数。

                     4>  数组作为函数参数,传递的是整个数组的地址,修改函数的形参数组元素的值,是会影响到外面的实参地址的。

                             

4、  如:int ages[5] = {[3]=10,[4]=11};

该语句表述定义初始化该数组,并给ages[3]赋值为10,ages[4]赋值为11。


二、C语言字符串

1、当字符串末尾结束时,是以'\0'结尾的,该字符的ASCII值为0.

            如:   char  name[8] = 'it';

                   char name2[8] = {'i','t','\0'};
                   char name3[8] = {'i','t',0};

            这三种字符串形式在内存中表现形式是一样的。


2、strlen()函数

          1>  该函数strlen()所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,    甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值。

2>使用时,需要头文件 #include<st ring.h>;
  3>  计算的字符数不包括'\0'.(一个汉字算作三个字符 )。


3、遍历字符串:4种方式

        1>  while(str[i] != '\0') i++;

        2>  while(str[i]) i++;

        3>  int i = -1;

                    while(str[++i]){  if()  return 1; };

        4>  int i = -1;//查找字符串中是否含有C,如果有返回1,没有返回0;

    while (str [++i] != c&&str[i]!='\0');

    return str[i] == '0'?0:1;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值