在学习C++时,或许不了解情况的人会问:到底先学习C语言还是C++,哪个更好?

那么小编的个人见解是:你在学习时别管哪个语言好与不好,是个语言它都是好语言,关键在于你会挖掘其中存在的价值,C++可以说是C语言的升级版本,简而言之,想要学会C++最好先把C语言学会。为什么?

很简单的一个理由:C语言中的知识要点,C++中几乎都有,将C语言的基本用法都会了,再去学习C++时,你会发觉你理解不吃力,说白了,你其实已经学会了一半的C++。

在C语言中基本语法:

#include <stdio.h>

int main ()
{
  printf("hello world!\n");
  return 0;
}

从上面可以看出,头文件属于输出输入流,可以用到输出输入的函数功能。

那么在C++上如何做到呢?

cout<<   输出到控制台

cin>>     输入到控制台

endl    换行

#include <iostream>   
using namespace std;
int main ()
{
  int number = 0;
  cout<<"请输入一个数:";
  cin>>number;
  cout<<"输入的numbere值:"<<number<<endl;
  system("pause");
  return 0;
}

看下运行的结果,可以看出都能在黑色的屏幕上,也就是控制台上显示你写的内容。

在C++语言中,也可以使用C语言中的头文件,加上头文件,函数不变,不懂的请看C语言部分。

C++语言的基本类型:bool、char、short、int、float、double、long、string;

这里主要讲bool和string两个类型。其余的类型不变。

我们都说非零为真,在C++语言中经常会用到,true就是1,即真;false就是0,即假。

不管C语言还是C++语言中,必须保证一段语句为真,编译器它才会运行。

反观string类型,学会jave语言的会知道,string就是字符串类型,在C++语言之中,它不仅仅表示字符串类型,还涉及到字符串相关的函数集合,这个类型说真的,很重要。下面来看看:

#include <iostream>
#include <cstring>  这就是C++语言中的字符串类型的头文件,它包含了很多字符串的函数
using namespace std;
//请敲代码
int main ()
{  
  
   string srcstr = "hello";

    //没法在控制台上直接打印srcstr

    cout<< stcstr << endl;

    cout<<stcstr.c_str()<<endl;

  system("pause");
  return 0;
}

调试时,它会直接报错:

在使用变量保存字符串方面,我们最好还是使用char 类型为好,为什么?C++ string跟java string不同。它不能直接打印,需要加【点c_str()】

#include <iostream>   
#include <cstring>
using namespace std;
int main()
{
  char srcstr[] = "hello";  //[]内不说明多少元素,你可以添加很多字符,如果添加数值,它就有限定,只要超出内存就会报错内存溢出
  cout << srcstr << endl;
  //如果非要使用string 类型的变量赋值为字符串
  string str="helloworld";
  cout<<str.c_str()<<endl;
  system("pause");
  return 0;
}

既然知道如何使用字符串,那么来看看cstring这个头文件包含了哪些重要的函数,若有不懂的,请看C语言部分。

#include <iostream>   
#include <cstring>
using namespace std;
int main()
{
char srcstr[] = "hello";    //[]内不说明多少元素,你可以添加很多字符
cout << srcstr << endl; char *deskstr=strcat(srcstr,"world");
cout << deskstr << endl;
system("pause");
return 0;
}

不管对与错,先运行,只有调试才能检验写的代码有无问题。

很明显,语句是没有问题的,但是有异常报错:

它的意思是什么?表示:'strcat':这个函数或变量可能不安全。考虑使用strcats代替。若要禁用弃用,请使用CRT安全无警告。详情请参阅在线帮助。

如果不会使用新标准安全的函数,只要使用cstring的头文件,就加上:

#define _CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>   
#include <cstring>
using namespace std;
int main()
{
system("pause");
return 0;
}

添加好后,再运行看看,不难看出strcat的函数功能是将两个字符串合为一句,意思是将“world”连接到字符串变量srcstr后面,返回赋值于指针deskstr,并打印。

strcpy()函数:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>   
#include <cstring>
using namespace std;
int main()
{
char deskstr[11] = {0};
strcpy(deskstr,"helloworld");
cout << deskstr << endl;
system("pause");
return 0;
}

打印结果helloworld,不难看出,原本的deskstr声明为一串十一个字符的空值,为什么变为有值了?strcpy就是复制的功能函数。写11表示数组类型的基本用法了,它最后都有一个默认加上的'\0'

strcmp()函数:

!strcmp(const char *deskstr,const char *srcstr); 非1即为0

表示两个字符串是否相等

deskstr = srcstr,返回值=0;

deskstr < srcstr,返回值<0;

eskstr  > srcstr,返回值>0;

看看运行结果。

strlen()函数:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>   
#include <cstring>
using namespace std;
int main()
{
int number = 0;
char deskstr[] = "helloworld";
number =  strlen(deskstr);    //字符个数
cout << number << endl;
system("pause");
return 0;
}

打印看看。

那么想要求出带‘\0’的字节函数呢?strlen()直接可以使用sizeof(deskstr);

这里还有很多的函数,就不细说了,想要了解的话,可以上网搜索string头文件有哪些函数。

记住:学习时,不要操之过急,或许每天学习的内容不同,但是你今天学到了一点,就说明了你已经在进步了,大树都是从树苗长成的。

C++第一课:基本语法for Visual Studio 2015[个人见解]的更多相关文章

  1. 体验Visual Studio 2015 Windows Forms应用程序开发与维护

    昨天到半夜还没有等到Visual Studio 2015的下载地址,实在熬不住就先休息了.北美地区的时区比北京时间要晚一些,今天早上到公司就看到Visual Studio 2015的下载地址,迅速的将 ...

  2. 解析Visual Studio 2015促进生产力的10个新功能

    1 性能提示 Performance Tips 当我们想知道执行一段代码所耗费的时间时,需要借助于.NET 框架的Stopwatch类,像下面这样: class Program { static vo ...

  3. Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用

    Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用 Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.cs ...

  4. ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用

    Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.css预处理器的构建工具,它帮助开发者处理客户端开发中的一些烦操重复性的工作.Grun ...

  5. Microsoft Visual Studio 2015 下载、注册、安装过程、功能列表、问题解决

    PS:请看看回复.可能会有文章里没有提到的问题.也许会对你有帮助哦~ 先上一张最终的截图吧: VS2015正式版出了,虽然没有Ultimate旗舰版,不过也是好激动的说.哈哈.可能有的小伙伴,由于工作 ...

  6. Visual Studio 2015正式发布

    Windows 10 RTM正式版要7月29日发布,微软的另一个重磅软件Visual Studio 2015已经率先发布,今天如期放出了正式版本.Visual Studio 2015包括许多新功能和更 ...

  7. Visual Studio 2015 移动跨平台开发初体验

    微软换了新 CEO 后变化很大,对我们团队最有利的消息就是 Visual Studio 2015 支持移动应用跨平台开发. 还记不记得很早之前,Xamarin 宣布与微软成为合作伙伴的消息.显然,Xa ...

  8. 再次记录 Visual Studio 2015 CTP 5 的一个坑

    接上一篇:升级 Visual Studio 2015 CTP 5 的坑.坑.坑 升级到 VS2015 CTP 之后,今天要改项目中的一个东西,然后就不得不把 C# 6.0 改变的语法代码中改了下(之前 ...

  9. 升级 Visual Studio 2015 CTP 5 的坑、坑、坑

    前两天,微软发布了 Visual Studio 2015 CTP 5,全称为 Visual Studio 2015 Community Technology Preview 5,意为社区技术预览版,之 ...

随机推荐

  1. 使用以太网通信方式刷新AB PLC固件

    本文详细介绍如何使用以太网通信方式刷新AB PLC固件 一.准备工作 1.  AB PLC控制器一台,本文以5069-L330ER为例,将其通电: 2.  5069-L330ER的IP已设置为172. ...

  2. 在线制作微信跳转浏览器下载app/打开指定页面源码

    微信自动跳转外部浏览器下载app/打开指定页面源码 源码说明: 适用安卓和苹果系统,支持任何网页链接.并且无论链接是否已经被微信拦截,均可实现微信内自动跳转浏览器打开. 生成的跳转链接具有极佳的防拦截 ...

  3. java 注意事项---避免踩坑

    1.......对象参数接收不能大写

  4. js reduce()方法使用

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. reduce() 可以作为一个高阶函数,用于函数的 compose. 注意: reduce() 对 ...

  5. 记一次解决netty半包问题的经历

    最近学习了netty,想写一个简单的rpc,结果发现发送消息时遇到难题了,网上搜了一下,这种情况是半包问题和粘包问题,主要是出现在并发高一些的时候. talk is cheap 客户端编码: prot ...

  6. Mybatis 常用注解

    Mybatis常用注解对应的目标和标签如表所示: 注解 目标 对应的XML标签 @CacheNamespace 类 <cache> @CacheNamespaceRef 类 <cac ...

  7. Unity AssetBundle的生成、加载和热更新

    当前使用的是unity2018.2.6版本. 生成AssetBundle 这个版本生成AssetBundle有两种方式,一种是在资源的Inspector面板下边配置AssetBundle名称,然后调用 ...

  8. 通过 iis或者本地IP 调试代码

    首先说下这个操作的意义,做微信开发每次需要将代码部署后才能调试.现在设置了Nginx服务器,生产环境可以指向正式服务器地址,调试时可以将Nginx指向自己的PC,但是vs调试启动的默认地址是[loca ...

  9. python正则表达式--flag修饰符、match对象属性

    正则表达式—修饰符 正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数. (1) re.I 全写(re.IGNORECASE) 表示使匹配时,忽略大小 ...

  10. kubernetes集群网络配置方案

    1. 直接路由 在每个节点上添加其他节点的静态路由,就可以将不同物理机的docker0网桥互联互通. 我的两个节点的IP分别为:172.16.252.218和172.16.252.209. 两个doc ...