C/C++学习笔记
日常总结
Crer_lu
浙江大学计算机科学与技术在读
展开
-
C语言获取当前时间
直接上代码#include <stdio.h>#include <time.h>int main(){ time_t tmpcal_t; struct tm *tmp_ptr = NULL; time(&tmpcal_t); tmp_ptr = localtime(&tmpcal_t); printf ("the time is:%d.%d.%d ", (1900+tmp_ptr->tm_year), (1+tmp_ptr->t原创 2022-04-23 08:13:32 · 4276 阅读 · 0 评论 -
二级指针易错点
char **s;*s[1]与 (*s)[1]不是一个东西原创 2022-03-21 11:18:09 · 147 阅读 · 0 评论 -
复杂度的渐进表示
复杂度的渐进表示1. O(n)(常用)T(n)=O(f(n))T(n)=O(f(n))T(n)=O(f(n))这个式子表示存在常数C>0C>0C>0 n0>0n_0 >0n0>0使得当 n>=n0n>=n_0n>=n0 时,T(n)<=C∗O(f(n))T(n)<=C*O(f(n))T(n)<=C∗O(f(n))简单来说,O(f(n))O(f(n))O(f(n)) 表示的就是f(n)f(n)f(n)的复杂度中的某个上界例如原创 2022-03-07 15:16:21 · 293 阅读 · 0 评论 -
C++ sort自定义cmp的细节
cmp函数在书写时,一定不要写出“return a <= b”的语句,否则程序就有崩溃的风险,这种错误极难观察出来,所以一定要注意。关于原因,我看了好多好多博客,这一篇最终解决了我的困惑关键就是一个词:严格弱序比较链接:https://blog.csdn.net/llz62378/article/details/88937139...原创 2022-02-22 16:42:39 · 694 阅读 · 0 评论 -
C++ 引用和传参的区别
C++ 引用和传参的区别直接看代码#include<bits/stdc++.h>using namespace std;void func1(int &a){ a = 100; return ;}void func2(int a){ a = 100; return ;}void func3(int *a){ *a = 100; return ;}int main(){ int a = 0; int b = 0; int c = 0; func1(a原创 2022-02-21 14:29:45 · 360 阅读 · 0 评论 -
C++ string 的substr的使用方法
C++ string 的substr的使用方法直接看代码#include<bits/stdc++.h>using namespace std;int main(){ string s = "Hello world !"; cout<< s.substr(1)<< endl;//下标从1开始到结束 cout<< s.substr(1, 4);//下标从1开始后4个字符 return 0;}输出结果...原创 2022-02-21 14:19:41 · 682 阅读 · 0 评论 -
ASCII的最大值到底是127还是255
ASCII问题引入我们知道,字符类型占一个字节,也就是八位,那平时我们所讲的ASCII范围只是0-127啊,那也就才7位,剩下的那一位呢?解释我们所讲的是标准ASCII,范围是0-127,剩下的那一位是置为0的,不过后来我们发现,这些字符不太能满足我们的需要,所以就有了扩展ASCII,范围是0-255,正好占八位(一个字节),下面摘录一段百度百科的内容。摘录ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。前128个叫标准ASCII 码,也叫基础ASCI原创 2022-01-05 11:19:42 · 9070 阅读 · 3 评论 -
运算符优先级与结合顺序
其实把优先级表背下来之后,判断优先级时会遇到两个问题。(1)优先级不同:以优先级为准,与结合顺序无关。(2)优先级相同:按照结合顺序依次计算。原创 2022-01-03 20:12:50 · 294 阅读 · 0 评论 -
(对于换行符)gets和fgets的区别,puts和fputs的区别
转载两篇博客,说的很清楚。关于fets与gets关于fputs与puts转载 2021-12-22 10:56:33 · 131 阅读 · 0 评论 -
十分钟搞懂C语言的文件操作
一文搞懂C语言的文件操作本文参考:浙大版《C语言程序设计(第4版)》 目录什么是文件操作怎么实现文件操作其它的文件操作一、什么是文件操作?直接来看不太方便理解,我们把它分开。文件文件可以通过应用程序创建,如运行“记事本”程序,输入一些数据,然后保存并输入文件名,就会在磁盘中产生一个文本文件。刚刚我们创建的只是一种文件,叫做文本文件,还有好多其它类型的文件,每个文件都有自己的属性。文件的概念在操作系统中,文件是指驻留在外部介质(如磁盘等)中的一个有序数据集它可以是源文件原创 2021-12-16 22:16:05 · 1700 阅读 · 2 评论 -
一文搞懂结构体变量占用多大内存空间(详细)
一、首先做一道例题感受一下请问下面定义的结构体变量aa在计算机内存中占用多少字节?#includemain(){struct student{ float height; short int age ; char sex ;}aa;printf("%d\n",sizeof(aa)); //屏幕上将显示多少?}错误解答:我们都知道,char类型占用1个字节,float型占用4个字节,short int类型占用2个字节,int型在VC6.0中占用4个转载 2021-12-15 19:23:46 · 7420 阅读 · 3 评论 -
结构体类型的三种声明方式
方法一有类型名称且声明的结构体变量直接跟在后面。如果不直接跟在后面声明,接下来就无法声明结构体变量。struct node{ int x; int y;}a;方法二有类型名称,声明的结构体变量不直接跟在后面。弥补了方法一的缺陷,可以不直接在结构体定义时声明。struct node{ int x; int y;};struct node a;注意:上述代码在C或C++编译环境下都不报错。但是如果写成下面这种形式,在C编译环境下会报错,而在C++下不报错。struct nod原创 2021-12-15 11:58:00 · 3300 阅读 · 0 评论 -
【PTA基础题错题集】
1.语句int *p; *p=50;执行时,不会有任何错误分析:有错误,这个指针是空指针,没有对应的地址,直接赋值会出现错误。原创 2021-12-15 10:44:29 · 10659 阅读 · 5 评论 -
C语言结构体问题中的 -> 和 . 有什么区别?
->的前面是指针类型 .的前面是结构体类型原创 2021-12-15 08:39:53 · 581 阅读 · 0 评论 -
一文搞懂printf中“转义字符+数字”的含义
由上我们知道转义字符+八进制数——>这个八进制数ASCII对应的字符printf("\043");输出:#printf("\43");输出:#(不足三位前面补0,补全三位)printf("\438");输出:#8(读到不合法的情况,终止继续向后转义)这个八进制数也可以用十六进制数来替代,不过格式有所变化。printf("\x23");输出:#printf("\x3");printf("\x03")输出:(一个看不见的字符,是“ETX”)printf("\x30").原创 2021-12-10 08:57:54 · 1801 阅读 · 0 评论 -
复数变量的声明
头文件 #include<complex>和using namespace std;complex <double> x;实部:x.real();虚部:x.imag();原创 2021-12-04 00:13:07 · 2152 阅读 · 0 评论 -
cout输出setioflags的使用
setioflags(ios::fixed) 固定的浮点显示setioflags(ios::scientific) 指数表示setiosflags(ios::left) 左对齐setiosflags(ios::right) 右对齐setiosflags(ios::skipws 忽略前导空白setiosflags(ios::uppercase) 16进制数大写输出setiosflags(ios::lowercase) 16进制小写输出setiosflags(ios::showpoint) 强制.原创 2021-12-04 08:45:35 · 1024 阅读 · 1 评论 -
cout输出如何控制小数位数
方法1:double s = 1.111111;cout<< setprecision(2)<< s<< endl;方法2;cout.precision(2);cout<< s<< endl;原创 2021-12-04 08:46:01 · 1337 阅读 · 0 评论 -
printf输出时如何用变量控制位宽?
看代码#include<stdio.h>int main(){ int x = 2, y = 3; printf("%*d %0*d", x, y, x, y); return 0;}原创 2021-12-02 19:58:49 · 543 阅读 · 0 评论 -
C语言中的内部名与外部名
最近在看C语言的经典书籍——《The C Programming Language》,其中第二章讲到变量名时有这么一段话:“对于内部名而言,至少前31个字符是有效的。函数名与外部变量名包含的字符数目可能小于31,这是因为汇编程序和加载程序可能会使用这些外部名,而语言本身是无法控制加载和汇编程序的。对于外部名,ANSI标准仅保证前6个字符的唯一性,并且不区分大小写。” 怎么也读不懂,于是Google之,得到如下解释:A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且转载 2021-10-02 17:07:57 · 794 阅读 · 0 评论