整理一些小细节,老鸟飘过....

1.使用cin cout为什么要加using namespace std;?

cin,cout是stl里的东西,stl又是采用std为命名空间的,所以在使用cin,cout的时候必须使用using namespace std;


2.数组的长度的获取

字符数组长度的获取很多人都知道,strlen(array);但是例如整形数组怎么获取长度呢?答案是sizeof(array)/sizeof(array[0]);弱爆了吧。


3.再说一个字符数组和字符串的问题。这样一行代码

char *ch = "zengqu";
*(ch+3) = 'w';


通过这样的代码来修改字符‘n’,可行么?当然不行,因为字符串在给字符数组赋值的时候是不允许修改的。


4.C语言中字符串被当作字符数组来处理

“zengqu”在内存中占了7个字节。

5.对于为初始化的字符数组,它的长度是是未知的。

#include<iostream>
using namespace std;

int main()
{
	char c2[2] ;
	cout<<strlen(c2)<<endl; //'\0不包括'
	return 0;
}


这个问题应该Debug版本的问题,因为在Debug版本的Visual Studio,微软默认开启了缓冲区溢出检查。编译器为分配而没有初始化的内存填0xcc,然后在缓冲区结束的时候又会填入特定的数字。在运行的时候,Debug版本的程序会检查缓冲区后面特定的数字是否被修改掉,如果被修改掉了,就说明你的程序存在数组越界写入的情况,这样让编程的人很快定位到错误。所以,Debug版本因为这些填入的特定的数字,导致出来的结果都相同。
 
6.字符串保存到字符指针里面去,怎么做。直接调用stl里面的函数
#include<iostream>
#include<string>
using namespace std;

int main()
{
	string str;
	cin >> str;
	const char *ch = str.c_str();
	cout<<strlen(ch)<<endl;
}


7.int a=10;和int a(10)有区别么?

第二个借鉴了C++构造函数的语法,

只有C++支持 

C只支持前者 

效果都是一样的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值