C/C++从小白到入门
文章平均质量分 90
C/C++从小白到入门
hello-alien
自动化测试人员,接口自动化测试、UI自动化测试。懂点开发,希望做一名优秀的测试人员!
展开
-
C语言基础---数组、指针之间的相同与不同
文章目录1. 不同之处1.数组名的指向不可以改变,指向数组的指针可以改变2.字符串的2种初始化方式3.组名可求得数组长度,而指针却得不到数组长度2. 相同之处1.使用索引的时候2.数组作为函数参数的时候1. 不同之处数组名不可以改变,而指向数组的指针是可以改变的。指针指向字符串,此时的字符串是不能改变的;而字符数组定义的字符串,字符是可以改变的。求数组长度时,借用数组名可求得数组长度,而借用指针却得不到数组长度。1.数组名的指向不可以改变,指向数组的指针可以改变遍历方式一:#转载 2021-03-25 15:19:31 · 2084 阅读 · 0 评论 -
C语言基础---指针数组----初始化方式&常量指针数组、指针常量数组
文章目录1.1.#include <stdio.h>int main() { char* str[3] = { "stra","strb","strc" }; char* p = str[0]; int i = 0; while (i < 3) { printf("%s\n", p++); i++; } return 0;}stratrarachar指针数组可以指向多个字符,直到遇到空为止。p本来指向第一个字符,但是因为是指针,所以要遇原创 2021-03-24 16:07:26 · 16976 阅读 · 2 评论 -
C/C++从小白到入门---总目录
文章目录一.C语言基础1.基础篇2.提升篇二.C++基础1.基础篇欢迎大家来到我的专栏《C/C++从小白到入门》,原本想起一个名字叫《从入门到放弃》(tip:内心想放弃无数次了!)。每当清醒之后,梦中的自己好像在呼唤现实的自己(嘿, 再坚持一下,说不定马上就突破了!)专栏介绍:本专栏适合不懂C/C++的小白,我就是这样慢慢走过来的,希望可以入门这个语言如果你是小白,建议找一些入门的视频,系统性地去学习这门语言,遇到关键知识点再搜索博文看(个人体会)本专栏,记录我在学习的过程中,在一些关键知识原创 2020-12-30 18:25:42 · 346 阅读 · 1 评论 -
C语言基础---1.比特位与字节的关系,二进制、八进制、十六进制之间的转换,内存为什么使用十六进制?
文章目录1.计算机为什么采用二进制?2.为什么引入字节?3.为什么一个字节是8位二进制,而不是其他数目?4.为什么引入八进制、十六进制?(1)二进制转换?(2)十六进制转换?1.计算机为什么采用二进制?因为二进制是在电路中最好控制的,只有1和0两种状态.代表接通和关闭电路的状态2.为什么引入字节?1字节(byte,字节)= 8 bit字节(Byte /bait/ n. [C])是计...原创 2019-04-04 20:58:39 · 9056 阅读 · 0 评论 -
C语言基础---2.使用visual studio查看内存中存储数据的方式---入门
文章目录1.C语言代码2.打开调试界面3.找到十六进制的内存地址,并分析:4. 内存中数据的存储方式?5.内存中数据地址的高位、低位?1.C语言代码#include <stdio.h>int main(){ int my_list[10] = { 12, 34, 56, 78 , 89 }; printf("内存地址为:%p \n", &my_list[0])...原创 2019-12-10 18:28:24 · 2557 阅读 · 1 评论 -
C语言基础---3.格式化输出总结---%d ,%s,%f & %.3f,%m.ns 以及sprintf函数
文章目录1.常规----格式化输出2.特殊----格式化输出3.sprintf-----格式化输出1.常规----格式化输出%d //整型输出%ld //长整型输出%o //以八进制数形式输出整数%x //以十六进制数形式输出整数,或输出字符串的地址%u //以十进制数输出unsigned型数据(无符号数)注意: %d与%u的区别是,有无符号的数值范围不同,也就是极限的值不同,不然数值打印出来会有误%c //用来输出一个字符%s /原创 2020-11-17 14:37:46 · 76213 阅读 · 0 评论 -
C语言基础---4.sizeof用法详解--入门
文章目录1.sizeof定义及用法:1.定义:2.用法:2.习题测试:1.数组 & 数组名相关2.指针变量 & *指针3.字符 & 字符数组4.函数感觉C语言中,任何一个函数、宏,或者其他概念,拿出来仔细分析,都能包含很多知识点,稍微不注意,立马入坑!看了好几篇博客,感觉各位大佬写的都挺好!作为新人的我,简单总结下!1.sizeof定义及用法:1.定义:sizeof是C语言的一种单目操作符,如C语言的其他操作符++、–等。它并不是函数。sizeof操作符以字原创 2020-06-04 15:13:31 · 13682 阅读 · 2 评论 -
C语言基础---5.数组相关详解:入门(一维数组 & 二维数组 & 应用案例)
文章目录1.数组基础2.数组的定义及赋值3.一维数组的初始化4.数组名:第一个元素的地址5.二维数组的定义及使用1.基础定义2.二维数组的初始化3.二维数组名:4.二维数组应用案例:1.数组基础在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。2.数组的定义及赋值#include <stdio.h>int main(){原创 2020-05-22 16:14:03 · 3240 阅读 · 0 评论 -
C语言基础---6.动态数组和静态数组详解---入门
文章目录0.堆 & 栈1.静态数组2.动态数组3.错误用法集锦:1.数组的大小,需要使用常量定义,否者报错2.动态数组的大小,需要用指针接收3.静态数组在函数中:无法传递参数给零一个函数4.动态数组:可以做为参数传递给其他函数0.堆 & 栈内存分配有如下三种形式:从静态存储区域分配:它是由编译器自动分配和释放的,即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,直到整个程序运行结束时才被释放,如全局变量与 static 变量。在栈上分配:它同样也是由编译器自原创 2020-05-22 18:24:06 · 9511 阅读 · 5 评论 -
C语言基础---7.看图学指针---小白基础入门篇
文章目录0.背景知识--堆和栈的理解1.C中对变量赋值的理解2.指针和内存地址的理解1.case1:获取变量的地址和指针的值2.case2:对指针的值重新赋值3.三种参数传递方式:1.按值传递参数(不推荐)2.按地址传递参数(感觉很NB,但不实用,特殊场合除外)0.背景知识–堆和栈的理解堆和栈的学习:https://blog.csdn.net/pt666/article/details/70876410个人理解:(可能有不准确的地方,欢迎指正)1.当我们在程序中初始化一个变量的时候,首先在栈原创 2020-05-14 11:34:04 · 757 阅读 · 1 评论 -
C语言基础---8.const的理解、左值&右值的理解
文章目录1.const的理解:1.const在C中:2.const在C++中:2.左值 & 右值3.题目案例:1.case12.case21.const的理解:const 在实际编程中用得并不多,const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加原创 2020-05-15 14:28:12 · 3789 阅读 · 1 评论 -
C语言基础---9.指针常量/常量指针详解--小白入门
文章目录0.指针常量&常量指针&指向常量的指针常量:傻傻分不清1.指针常量2.常量指针3.指向常量的指针常量0.指针常量&常量指针&指向常量的指针常量:傻傻分不清const int *p 或者 int const *pint * const pconst int * const p第一次看到上面的表达式,感觉很懵逼。如果您是属于完全不懵逼的人,那就可以跳过下面的部分了!指针常量:本质是常量,但是指针修饰的,既然是常量,那常量的值是无法改变的。例如,小姐姐很原创 2020-05-21 16:09:32 · 312 阅读 · 0 评论 -
C语言基础---10.字符串的拷贝 & 反转
文章目录1.字符串拷贝---常规方法2.字符串拷贝---指针法3.字符串的反转1.字符串拷贝—常规方法#include <stdio.h>void str_cpy_01(char* dest, char* resource) { int length = strlen(resource); // strlen()函数传入的是数组指针或指针变量 for (int i = 0; i < length; i++) { dest[i] = resource[i]; }原创 2020-06-16 13:39:07 · 1121 阅读 · 0 评论 -
C语言基础---11.数组相关常见的坑(字符数组、字符指针、strcpy与=区别)
文章目录1.数组名的指向不可改变2.strcpy的使用详情:3.字符指针与strcpy的特殊用法:学了一段时间数组、指针、地址等相关知识,感觉自己算入门了,其实发现距离入门还差18条鸿沟,还得继续努力才能入门!1.数组名的指向不可改变数组名的指向不可以改变(指向的地址不能改变),但此地址的值,是可以改变的!#include <stdio.h>int main() { char ps[6] = { 'h', 'e', 'l', 'l', 'o' }; // 等价于:char原创 2020-06-08 14:57:59 · 1532 阅读 · 0 评论 -
C语言基础---12.const使用(数组指针、指针常量,常量指针、常量指针常量、常量数组)
文章目录1、char* const p (指针常量)2、const char* p (常量指针)3、const修饰数组3.1 const char array[]3.2 char const array[]3.3 数组的个人理解4、const char* array[]5、char* const array[]6、const char **pp;7、char** const pp1、char* const p (指针常量)指针是常量,指针的值不能改变,但是指针指向的值可以改变。 char da原创 2020-06-08 15:22:54 · 1348 阅读 · 0 评论 -
C语言基础---13.二维数组名是不是指针、指针的指针
文章目录1.数组名是不是指针 & 指针的指针2.通过索引和*对数组取值的原理3.易错地方:数组名赋值给指针5.二维数组名是不是指针的指针1.数组名是不是指针 & 指针的指针#include <stdio.h>int main() { char a[6] = { 'A', 'B', 'C', 'D', 'E', 'F' }; printf("%c \n", *a); printf("%c \n", *(a + 1)); printf("%c原创 2020-09-14 19:21:06 · 502 阅读 · 0 评论 -
C语言基础---14.指针数组 & 数组指针---图解篇
文章目录0.指针数组 & 数组指针(相见恨晚篇)1.指针数组2.数组指针3.再谈二维数组0.指针数组 & 数组指针(相见恨晚篇)《C语言深度剖析》上面的解析如下:指针数组: 首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,在32 位系统下任何类型的指针永远是占4 个字节。它是“储存指针的数组”的简称。数组指针: 首先它是一个指针,它指向一个数组。在32 位系统下任何类型的指针永远是占4 个字节,至于它指向的数组占多少字节,不知转载 2020-06-01 16:31:49 · 1671 阅读 · 1 评论 -
C语言基础---15.指针&数组名&数组地址&变量对应的加减法---图解篇
文章目录1.指针与整数的加减(指针的偏移)2.数组地址与整数的相加减(数组地址的偏移)最终学习C/C++,遇到很多疑难杂症。希望用自己的理解和图形化的方式,把核心的问题表达清楚,即使是小白,也能看明白什么原理!(不忘初心,晚上加鸡腿!)pa是指针,指向了数组a数组a有10个元素,都初始化好了int类型的数组,每个元素占用4个字节的大小,内存中每4个字节内存存储了一个元素,共计40个字节大小,右边暂时省略了!数组名a的值是首元素的地址a[0]的值,虽然a和a[0]表达的不一样,但是值都一样原创 2020-05-28 20:14:41 · 5372 阅读 · 1 评论 -
C语言基础---16.看图学多级指针---入门篇
文章目录1.一级指针图示:2.二级指针的图示:3.代码验证4.代码验证1.一级指针图示:在堆内存中保存数据的地址为00B8A000指针b在栈内存的地址为00B8A004,但指针变量b会保存堆内存的地址00B8A000,方便指针找到堆内存*b的过程是先找到指针变量b对应的堆内存地址,然后再算出来这个地址对应的值,即为102.二级指针的图示:注意,二级指针此处用**c定义二级指针,只能用2个*二级指针c,因为指向了一级指针b,根据一级指针的原理,C指针(指针变量c存放具体原创 2020-09-11 11:03:40 · 1000 阅读 · 0 评论 -
C语言基础---17.不同变量的作用域---局部 & 全局 & static全局 & static局部 & extern
文章目录1.局部变量2.全局变量3.静态全局变量4.静态局部变量5.extern的作用1.局部变量在一个函数内定义局部变量也叫auto自动变量(auto可写可不写),一般情况下代码块{}内部定,只在函数范围内有效在复合语句中定义,只在复合语句中有效随着函数调用的结束或复合语句的结束局部变量的声明声明周期也结束如果没有赋初值,内容为随机2.全局变量在函数外定义,可被本文件及其它文件中的函数所共用,若其它文件中的函数调用此变量,须用extern声明全局变量的生命周期和程序运行周期一样转载 2020-09-11 16:04:32 · 446 阅读 · 0 评论 -
C语言基础---18.函数中形参为什么需要指针?
文章目录1.交换两个变量的值---间接交换2.交换两个变量的值---直接交换3.交换两个变量的值---内存地址和值都交换本文利用2个变量的值的交换,通过3个案例,说明变量名、对应内存地址、对应的值三者之间的关系。一般来说,在C/C++中,我们说交换某2个变量的值,需要保证变量对应的内存地址不要变动,值变动即可。但其他语言(如Python)不研究指针相关的内容,只关心值是否变动即可,内存很少研究,我们也看看其工作原理。1.交换两个变量的值—间接交换如下函数,是为了实现交换两个变量a,b原创 2020-12-31 15:04:46 · 1713 阅读 · 4 评论 -
C语言基础---19.为什么不能向函数传递一个数组
文章目录1.常规理解(错误)2.改良之后(感觉正确了)3.最终方案:4.把指针变量传递给函数如下内容来源书籍《C语言深度剖析–第2版》,强烈建议初学者买来读一读,良心推荐!1.常规理解(错误)#include <stdio.h>void fun(char a[10]) { char c = a[3]; printf("%c \n", c);};int main() { char b[10] = "abcdefg"; fun(b[10]); // 此处出错原创 2020-06-05 17:10:40 · 2544 阅读 · 1 评论 -
C语言基础---20.结构体:从入门到应用
文章目录1.定义结构体变量的三种方式:2.结构体元素的赋值方式:3.将结构体名作为函数的参数(不推荐)4.将结构体的指针作为函数的参数(推荐)1.定义结构体变量的三种方式:1. 先声明结构体类型,再定义变量名:#include <stdio.h>struct student { char name[50]; int age;};struct student s1 = { "alien", 18 };int main() { printf("s1.name = %原创 2020-05-26 14:51:40 · 389 阅读 · 0 评论 -
C++基础---1.头文件&using&命名空间namespace使用详解---入门
文章目录1.using关键字1.声明变量的作用1.using关键字1.声明变量的作用在使用using之前,如果全局变量和局域变量同时存在的时候,函数会自动使用全局变量。如果我们想使用的是局域变量,那就没办法了。#include <iostream>using namespace std;int age = 28;namespace alien { int ...原创 2019-12-05 15:29:21 · 6443 阅读 · 0 评论 -
C++基础---2.引用的理解--入门
文章目录1.引用的特性1.引用基础2.引用的特性:初始化后不能再修改了3.引用的特性:其他2.函数中传递参数的方式---引用传递1.引用的特性引用是C++对C的增强,C里面是没有引用1.引用基础#include <iostream>using namespace std;int main() { int a = 20, b = 30; int& c = b; // c是初始化为b的引用 cout << "a=" << a <原创 2020-05-14 15:19:08 · 321 阅读 · 0 评论