学习C (一)
来源:互联网 发布:电脑用手机网络 编辑:程序博客网 时间:2024/05/17 09:11
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个。
- 学习C (一)
- c 学习记录 一
- C#Task 学习 一
- c学习(一)
- C/C++学习一
- c学习笔记(一)
- 【C++】学习笔记一
- c/c++学习(一)
- 学习编程规则C++(一)
- [C语言学习]作业一
- C#的学习笔记(一)
- 学习编程规则C++(一)
- Linux c 学习笔记(一)
- C++test 学习(一)
- Objective-C学习大纲 一
- 学习《c++primer》笔记一
- object c 学习(一) : runtime
- C语言学习(一)
- 遭遇“HTTP 错误 500.19 无法访问请求的页面,因为该页的相关配置数据无效。”
- 万维网发布服务(w3svc)以停止。除非万维网发布服务(w3svc)正在运行
- Linux内核红黑树使用方法
- 启动lighttpd显示not found错误
- C#.Net WinForm应用程序点击按钮打开目录或文件名
- 学习C (一)
- [号外]x3c框架开源了
- HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。
- 11 01 05 事情做不完
- (C#)排序算法 Sort Algorithm
- Link Building Tip – Make the Most of What You Have
- 像Youtube一样的flv视频网站制作 使用Flex和PHP创建自己的视频应用
- Windows主机端与自定义USB HID设备通信详解
- (C#)冒泡排序 Bubble Sort