![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习狄泰课程笔记
努力向上的程序员
这个作者很懒,什么都没留下…
展开
-
指针与数据的分析
在详细说指针之前,先来聊一聊,C语言中的变量到底是什么东西。所谓的变量,只不过是一段内存空间的别名,那么,我们是否能直接操作该地址呢,对于这个问题,就引入了指针。指针,可以将其理解为一个变量,只是该变量值为地址。下面我们先来看一段代码。#include<stdio.h>int main(){ int i =5; int* p = &i; printf("%p\n...原创 2019-07-08 00:25:57 · 175 阅读 · 0 评论 -
宏定义与使用
#define是预处理器单元实体之一,可出现在任意位置。#define定义之后的代码都能使用这个宏。#define定义的宏常量本质是字符量,即不占用内存空间。#define有比函数更加强大的地方比如计算数组的长度,但是更容易出错。如#define _DIM_(a) sizeof(a)/sizeof(*a)下面,我们再来看一个小程序#include<stdio.h>#d...原创 2019-07-06 22:35:15 · 255 阅读 · 0 评论 -
C语言中的单引号与双引号
单引号表示字符字面量,在内存中占一个字节‘a’+1表示’a’的ASCII码加一,结果以为’b’。双引号表示字符字面量,在内存中占据两个字节“a”+1表示指针运算,结果指向了"a"的结束符"\0"。字符字面量被编译为对应的ASCII码而字符串字面量被便编译为对应的内存地址...原创 2019-07-06 21:39:05 · 2929 阅读 · 1 评论 -
C++中的引用
引用变量为一段内存的别名,个别时候可以作为指针使用,如下这种情况。#include<stdio.h>void swap1(int& a, int& b){ int temp = 0; temp = a; a = b; b = temp;}void swap2(int* a, int* b){ int temp = 0; temp = *...原创 2019-07-10 01:06:07 · 119 阅读 · 0 评论 -
C++中的const
在c语言中的const修饰的变量是指只读变量。这里只读的意思是,被修饰的变量不能出现在赋值符号的左边,但是可以通过地址的值改变其值。#include<stdio.h>int main(){ const int i = 0; int* p = &i; *p = 10; printf("%d\n", i); return 0; }但是在C++...原创 2019-07-10 00:01:01 · 110 阅读 · 0 评论 -
函数指针的分析
在学习数组指针的时候,当时有两种方法定义数组指针。今天要讲的函数指针跟数组指针在定义的时候有着相似的地方。先来了解一下函数指针的重命名定义: typedef type name (paramter list);定义方式: type(* name)(paramter list); 或: FuncType* p; 以上就是函数指针的两种定义方式。 函数指针指向一个函数,函数名...原创 2019-07-09 23:18:33 · 165 阅读 · 0 评论 -
多维数组和多维指针
指向指针的指针变量在指针的介绍中,我们就说了,变量就是内存空间的另外一个名称,而指针变量就是指向这一段空间的一个变量。既然指针也是个变量(占据一定的内存空间),那么我们是否可以定义一个指向指针地址的指针,来保存指针变量的地址呢?让我们先来看一段代码。#include<stdio.h>int main(){ int i = 0; int* p = &i; int*...原创 2019-07-08 23:37:13 · 103 阅读 · 0 评论 -
指针数组和数组指针
在讲解今天的内容之前,先了解一下在c语言中如何对数组类型进行重命名。 typedef type(name)[size];数组类型 typedef int(AINT5)[5]; typedef float(AFLOAT10)[10];数组定义 AINT5 iArrayl AFLOAT10 fArray;有了前面的铺垫,就能更好的理解数组指针了。所谓的数组指针就是指向一个数组...原创 2019-07-08 19:40:22 · 168 阅读 · 0 评论 -
C语言中的字符串
字符串顾名思义就是一个有序字符的集合。在C语言中,并没有字符串的概念,但是字符串又是程序的基本元素之一,那怎么办呢?原来C语言通过特殊的字符数组(以’\0’结尾的字符数组)来表示字符串。下面来看看程序。int main(){ char a[] = {'h', 'e', 'l', 'l', 'o', '\0'}; char b[] = "helloworld!!!"; char* str ...原创 2019-07-08 07:50:07 · 159 阅读 · 0 评论 -
#error与#pragma的使用
#error 生成一个变异错误信息,可用于提示编译条件是否满足。用法 #error message 注:message不需要双引号括起来#pragma用于指示编译器完成一些特定的动作,并且不同的编译器之间不可进行移植。#pragma的用法: #pragma parameter 注:不同的parameter参数语法和意义不同。下面,让我们来看看#error以及#...原创 2019-07-06 23:10:20 · 726 阅读 · 0 评论