
小的语法知识
deniece1
这个作者很懒,什么都没留下…
展开
-
C++定义字符串数组的方法
#include <iostream>using namespace std;int main(){ char* const a[7] = { "Hello", "world" }; //会出现[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings] //D...原创 2019-11-09 16:48:46 · 21832 阅读 · 0 评论 -
C/C++中的指针变量可以相互赋值,使得它们指向同一块地址空间
两个指针变量可以相互赋值吗?int *p, *q;p=q;这样写是什么意思?是p指向q吗?答:1.两个指针变量之间可以相互赋值,p和q都是int类型的指针。p=q表示将q所指向的int类型变量的地址赋给p2.两个都是指针,所以是p的值等于q如果p不是指针,那么p=q是p等于q指向的值3.可以这样写,前提好像是q有确定的地址指向,然后用此语句赋值则表示,指针p和指针q指向相同的地址空...原创 2019-11-02 16:12:08 · 12614 阅读 · 2 评论 -
对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)
typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);此处由于加了t...原创 2019-10-26 16:15:11 · 1311 阅读 · 0 评论 -
scanf_s()函数 (是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数)
scanf()函数是标准C中提供的标准输入函数,scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数。因为scanf()在读取数据时不检查边界,所以可能会造成内存访问越界而scanf_s不会。scanf() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。其调用格式为:scanf("<格式化字符串>",<地址表>...原创 2019-10-18 16:54:42 · 522 阅读 · 0 评论 -
int能表示的数据范围(在VS2017下,int和long都是32位)
int有符号数时:-2147483648~2147483647无符号数时:unsigned int能表示范围: 0~4294967295由上可知:int作为有符号数,能表示的正数数据范围最大应该超过20亿了当然,longlong为64位的可以自己打印试一下:#include "pch.h"#include<iostream>using namespace std;in...原创 2019-09-14 09:51:47 · 3856 阅读 · 0 评论 -
浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)
自己在Dev里验证了,浮点数取模时有编译错误,通不过。如:[Error] invalid operands of types ‘double’ and ‘int’ to binary ‘operator%’代码:#include<iostream>using namespace std;int main(){ float a=2.5; float b=3.0;// ...原创 2019-09-14 18:14:48 · 4041 阅读 · 0 评论 -
结构体是否有默认的构造函数?(没有,如果需要,需要自己写)
// node type used by winner tree#ifndef player_#define player_struct player //竞赛树的每个外节点 { int id, key; //id表示元素所在的顺串号,key表示元素的值 operator int () const {return key;} //有了这个函数就可以像内建数据类型一样...原创 2019-04-06 16:19:38 · 4598 阅读 · 4 评论 -
函数声明应该写在什么位置?main函数里面还是前面?(都可以,只要在调用语句的前面即可)
//自己一开始没注意这个问题,自己动手写一个简单的程序时才发现自己对此问题只是有点以前看书后剩下的模糊的印象,并不是十分清楚,所以弄个明白。这件事也告诉我:看起来再简单的小事中也可能隐含着你所不知道或者不了解的知识,一定要多动手,实践过程中才会发现问题,从而掌握更多东西,只看一遍甚至几遍,或许你也留意不到自己不会的细小的问题。加油!并且,祝愿祖国母亲生日快乐!··················...原创 2019-10-01 10:59:25 · 52067 阅读 · 7 评论 -
C语言/C++ 中除法得到结果的精度问题(有浮点数参与除法,结果就是浮点数,除数和被除数都是整数,结果默认是整数)
总结:1.当除数或者被除数之一(只要有一个)是浮点数(或double),进行的就是浮点数除法,会把另一个除数或者被除数转换为精度更高的进行除法(例如int转为float,float转为double)结果为浮点数(或double)例如float/int 或者int/float,结果都是float2.当除数和被除数都是int类型时,即使结果定义为float类型,显示的结果值也是整数验证的小例子...原创 2019-10-05 11:15:56 · 12521 阅读 · 2 评论 -
C++中比较大小的表达式中,小于号和大于号都是不能连着打的,要用&&连接起来
C++中比较大小的表达式中,小于号和大于号都是不能连着打的,要用&&连接起来,这一点不同于日常的数学表达式,例如if(a<b<c)或者if(0<a<100)都是不正确的写法。#include<iostream>using namespace std;int main(){ int a; cin>>a;/* if(0&l...原创 2019-09-12 17:13:07 · 16901 阅读 · 3 评论 -
C++中的变量不初始化是什么结果?(整型、bool型、字符型)结果都是随机的,不确定
记住:不论是固定大小的数组,动态分配的数组,还是变量,只要不初始化,结果就是未知的。整型变量不一定是0,bool型也不一定是false#include<iostream>using namespace std;int main(){ cout<<"整型变量:"<<endl; int a[10]; for(int i=0;i<10;i++)...原创 2019-09-12 15:29:11 · 1368 阅读 · 0 评论 -
C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化
经过验证,定义一个bool型数组而不赋初值,打印出来每一个元素的值都为0原创 2019-05-04 14:20:12 · 6585 阅读 · 2 评论 -
C/C++中.和->的用法区别
“.“和”->“都是二元操作符,格式为:变量(.或->)成员。(成员可以是变量,也可以是函数)。各自含义解释如下:1 .”.” 该操作符认为左边的变量是一个结构或者类对象。.将取该变量的成员值(操作符右边的成员)。2 ."->" 该操作符认为左边的变量是一个指针。->将取该指针指向的变量的成员值(操作符右边的成员)。所以反推过来,总结这两个操作符是用来访问类对象...原创 2019-09-01 11:42:48 · 3213 阅读 · 0 评论 -
sort用法(默认按升序排列)
自己记住:sort有三个参数,第三个参数不写时,默认按照升序排列,自己如果想按降序排序,写一个返回值为布尔类型的排序函数就好 第一个参数:数组名,也就是数组首地址 第二个参数:一般形式为“数组名+n”,其中n是你想从数组首地址开始,排序的数字元素的个数 注意;sort的前两个参数相当于是确定一个你想要排序的元素的...原创 2019-09-01 11:54:29 · 24058 阅读 · 0 评论 -
定义结构体的时候,里面的变量可以同时初始化吗?(不可以)
定义结构体的时候,不能对里面的变量同时初始化。因为定义结构体时,并未给其分配内存,所以初值是无法存储的。应该声明结构体变量后,手工赋值。struct sstring{int a;int date[2];}sst[2]={{10,{1,2}},{20,{3,4}};或者struct sstring{int a;int date[2];};sstring[]={{........原创 2019-09-07 11:32:50 · 10407 阅读 · 4 评论 -
为sort函数指定排序规则时注意的问题以及错误的写法
#include<iostream>#include<algorithm>using namespace std;bool cmp1(const int&a,const int &b){ if(a<b) return true;}bool cmp2(const int&a,const int &b){ retu...原创 2019-09-07 14:37:48 · 1255 阅读 · 0 评论 -
函数中参数有数组时注意的小问题(不一定要传递数组长度,不用返回数组,可以在函数中改变数组元素值)
函数中参数有数组时注意的小问题:1.不一定要传递数组长度2.不用返回数组,可以在函数中改变数组元素值通过下面这个小例子来验证:#include<iostream>#include<cmath>using namespace std;const int N=1005;void msort(int *a){ a[1]=6; a[2]=7;}int ma...原创 2019-09-08 11:28:22 · 1027 阅读 · 0 评论 -
switch在C++中的用法以及用switch结构时要注意的问题(细节问题比较全面)
在做题时发现自己将大一学的switch忘得差不多了,特地回顾一下。有不对地方欢迎指出,一起探讨。用switch结构时注意的问题:1.switch只能接受整型和字符型,所以后面的各个case的取值也只能是整型或者字符型,不能是字符串!不能是变量!而且是相等时才执行2.case后面若是字符型一定加的是单引号,加双引号会被认为是字符串,不加单引号会被认为是变量(例如不加单引号,case b时:[E...原创 2019-09-12 11:39:22 · 13203 阅读 · 0 评论 -
有关scanf输入的问题
/*while(scanf("%d",&t),t)这句话的意思是,输入一个整数t,如果输入的数非零,则执行while循环。这个是逗号运算符,取决于t的值( scanf(“%d”,&n),n ) 这句是 逗号表达式。 逗号表达式 的 结果 数值 等于 最右一个式子的值,这里的 就是 n. 显然,句子的意思 是 当 输入 的 n 等于 0 时,退出 ...原创 2019-04-19 10:55:31 · 458 阅读 · 0 评论