zoukankan      html  css  js  c++  java
  • 学习C (一)

    int _tmain(int argc, _TCHAR* argv[])
    {

    char str[20],str2[20];
    cout
    <<str<<endl; //由于分配了空间,没有写入数据,在输出地时候读没有写入数据的地址就回出现乱码
    for(int i=0;i<20;i++)
    {
    str[i]
    ='a';
    //if(i==10)
    //{
    // str[10]='\0';//字符串遇到了\0,就会结束,所以strlen(str)=10
    //}
    }
    str[
    19]='\0';//结束字符串,没有这一句就回出现乱码

    strcpy(str2,str);
    //将一个字符串赋给列一个相等容量的字符串是会出现乱码的,因为字符串的最后一位必须是\0
    cout<<str<<" , "<<sizeof(str)<<" , "<<strlen(str)<<" , "<<str2<<endl;

    int k = 5;
    k
    = k + (++k);
    cout
    <<k<<endl;

    int b1;
    cin
    >>b1;
    return 0;
    }



    输出结果如下:







    char str[20];

    定义一个长度为20的字符数组,系统会分配20个连续的空间给str;开始的时候每个空间里面都没有值;

    str指向数组的第一个空间,str相当于一个常量指针,所以不能写str
    =?;



    sizeof(str)表式str所占的空间长度,char str[20]表示长度为20,也就是说sizeof(str)的值在定义的时候就已经定了,

    就是字符创数组的长度。



    strlen(str)表示str中字符的个数,这里有19个,最后一个\0不算。



    int k = 5;
    k
    = k + (++k);

    最后k
    =12;这个的确不太好理解





    理解:可以这样理解i
    ++++i:
    对于一个表达式;如果有
    ++i;就相当于在表达式之前加入一行代码i=i+1
    同理有i
    ++;相当于在表达式后面加入一行代码i=i+1

    int k = 5; k = k + (++k);相当于int k=5;k=k+1;k=k+k;

    测试题:递归实现猴子偷桃问题

    //猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
    //第二天又将剩下的桃子吃掉一半,又多吃一个。以后每天都吃了前一天剩下的一半零一个。
    //到第10天,只剩下一个桃子了。编程试求第一天共摘了多少桃子。
    int Eat(int currentCount,int i)
    {
    if(i==10)
    {
    return currentCount;
    }
    else{
    currentCount
    =(currentCount+1)*2;
    i
    ++;
    }
    return Eat(currentCount,i);
    }

    cout
    <<Eat(1,10)<<endl;

    得出第一天摘了1534个桃子。

    最后一招猴子偷桃,竟然偷了1534个。

  • 相关阅读:
    css样式之属性操作
    css之操作属性
    前端之css样式(选择器)。。。
    微信天天酷跑答题赢积分所有问题及答案
    MP3中设置播放顺序的软件《闪存式MP3伴侣》
    转:java中数组与List相互转换的方法
    javascript脚本中使用json2.js解析json
    使用jsmin压缩javascript脚本
    关于http客户端常见错误"警告:Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.
    IDEA中Git更新合并代码后,本地修改丢失
  • 原文地址:https://www.cnblogs.com/hlxs/p/2087984.html
Copyright © 2011-2022 走看看