c语言指针

C语言知识点总结篇

白昼怎懂夜的黑 提交于 2019-11-30 15:48:04
Debug和Release版本比较 Debug附加了许多调试信息,主要用于调试,故文件大; Release是经过优化后的版本,去掉了调试信息,代码进行了优化,故文件较小,且编译速度快过Debug,用于发布平台的配置管理器的设置; 32位与64位 32位,地址为32位,最大使用内存4G,只能运行32位的数据; 64位,地址为64位,既可以运行32位的数据,也可以运行64位的数据; 指针 指针是个量,对应一块内存区域; 指针存储的是某个内存单元的地址; 访问方式: 1、直接访问:按变量地址存取变量值,取地址符&; 2、间接访问:通过存放变量地址的变量去访问变量,间接运算符*; 在函数中改变一个外部变量,需要变量的地址; 若是数据,需要指向数据的指针存储数据的地址; 若是指针,需要指向指针的指针存用户指针的地址; 数组与指针 p[i]等价于*(p+i),&p[i]等价于p+i; a[i][j]等价于*(*(a+i)+j),&a[i][j]等价于*(a+i)+j, a[i]等价于*(a+i); 行数组指针定义方法:数据类型(*指针变量名)[二维数组列数]; 二维数组地址不可变化,数据可以变化,可以在不修改地址的情况下管理数据,指针数组指向的数据不可变化,但地址可以变化,在不修改数据的情况下查看数据; 三维数组与指针,A[i][j][k]的三种表达形式:*(A[i][j]+k)、*(*(A

无锡哪里有卖银行卡

别来无恙 提交于 2019-11-30 13:35:35
无锡哪里有卖银行卡█ █微信:619998462█ █ 没啥好说的,就是+- /& =、==等。 左值和右值 简单归纳:当一个对象被用作右值的时候,用的是对象的值(内存);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。假设p的类型是一个int*,则decltype如果作用于一个表达式时如decltype(*p)得到的是一个引用类型,而decltype(&p)的结果是一个int ** 运算符优先级 逻辑和关系运算符 其中逻辑与运算符(&&)和逻辑或(||)运算符是短路求值运算符: 对于逻辑与运算符来说,当且仅当左侧运算对象为真时才对右侧运算对象求值。 对于逻辑或运算符来说,当且仅当左侧运算对象为假时才对右侧运算对象求值。 赋值运算符 赋值运算符满足右结合律,即 1 2 int a,b,c; a = b = c =3;//可以连续赋值 赋值运算优先级较低,所以在条件语句中,赋值部分通常加上括号,如: cpp int i; while((i=get_value())!=42){ //anything } 递增递减运算符 分前置版本和后置版本。前置版本先加1,然后将改变后的对象作为求值结果,后置版本也会将运算对象加1,但是求值结果是运算对象改变之前那个值的副本。 如果想测试一个算术对象或者指针对象的真值,最直接的方法就是将其作为if条件 1 2 3 4 if

杭州哪里有卖银行卡

一曲冷凌霜 提交于 2019-11-30 13:35:19
杭州哪里有卖银行卡█ █微信:619998462█ █ 没啥好说的,就是+- /& =、==等。 左值和右值 简单归纳:当一个对象被用作右值的时候,用的是对象的值(内存);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。假设p的类型是一个int*,则decltype如果作用于一个表达式时如decltype(*p)得到的是一个引用类型,而decltype(&p)的结果是一个int ** 运算符优先级 逻辑和关系运算符 其中逻辑与运算符(&&)和逻辑或(||)运算符是短路求值运算符: 对于逻辑与运算符来说,当且仅当左侧运算对象为真时才对右侧运算对象求值。 对于逻辑或运算符来说,当且仅当左侧运算对象为假时才对右侧运算对象求值。 赋值运算符 赋值运算符满足右结合律,即 1 2 int a,b,c; a = b = c =3;//可以连续赋值 赋值运算优先级较低,所以在条件语句中,赋值部分通常加上括号,如: cpp int i; while((i=get_value())!=42){ //anything } 递增递减运算符 分前置版本和后置版本。前置版本先加1,然后将改变后的对象作为求值结果,后置版本也会将运算对象加1,但是求值结果是运算对象改变之前那个值的副本。 如果想测试一个算术对象或者指针对象的真值,最直接的方法就是将其作为if条件 1 2 3 4 if

C++primer学习笔记(三)

ぃ、小莉子 提交于 2019-11-30 12:49:57
没啥好说的,就是+- /& =、==等。 左值和右值 简单归纳:当一个对象被用作右值的时候,用的是对象的值(内存);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。假设p的类型是一个int*,则decltype如果作用于一个表达式时如decltype(*p)得到的是一个引用类型,而decltype(&p)的结果是一个int ** 运算符优先级 逻辑和关系运算符 其中逻辑与运算符(&&)和逻辑或(||)运算符是短路求值运算符: 对于逻辑与运算符来说,当且仅当左侧运算对象为真时才对右侧运算对象求值。 对于逻辑或运算符来说,当且仅当左侧运算对象为假时才对右侧运算对象求值。 赋值运算符 赋值运算符满足右结合律,即 1 2 int a,b,c; a = b = c =3;//可以连续赋值 赋值运算优先级较低,所以在条件语句中,赋值部分通常加上括号,如: cpp int i; while((i=get_value())!=42){ //anything } 递增递减运算符 分前置版本和后置版本。前置版本先加1,然后将改变后的对象作为求值结果,后置版本也会将运算对象加1,但是求值结果是运算对象改变之前那个值的副本。 如果想测试一个算术对象或者指针对象的真值,最直接的方法就是将其作为if条件 1 2 3 4 if(val);//如果val是任意的非0值,条件为真 if(!val);/

C语言——指针数组及实例

匆匆过客 提交于 2019-11-30 12:27:15
数组: ——存储在一块连续的内存空间中 ——数组名就是这块连续内存空间的首地址 指针的算术运算: ——指针的递增和递减(++,-- ) 注意不要加多或者减多了,C语言对这类并不做限制 小结: —————————————————————————————— 实例: 数组逆序: 正常交换 关键在于N要除以2 指针交换的思路: 12 34 56 78 90 一号指针指向第0个元素 二号指针指向最后一个元素 然后1号指针和二号指针交换,交换过后,一号指针++,二号指针-- 直到一号指针和二号指针相差只有一个或者小于等于它的时候 二维数组与指针: 同一维数组,数组名也是数组的首地址 首地址:&a[ 0 ] [ 0 ] 总结: & 取地址 * 根据地址取值 指针不可以赋常量 num[ i ] num[ I ] [ j ] *(num + i ) *(*num + i ) + j //数组名就是数组的首地址 //操作数组 ==》指针 num <==> * ( num + i ) 下面莫名其妙会多出两个图片 =small⚆_⚆ 老九学堂会员社群出品 作者:zero 来源: https://www.cnblogs.com/ljxt/p/11586043.html

C语言——指针

谁都会走 提交于 2019-11-30 12:26:45
——理解指针的基本概念 ——指针变量 ——理解指针和数组的关系 ——使用指针操作数组 指针简介: 指针是一个值为内存地址的变量( 或者数据对象 ) 举例,我们 int year; year = 2016; 在内存中,给我们分配了一块空间,名字就叫year,空间的内容是 2016 类比于year是盒子,2016就是盒子中的东西。 那什么是内存地址呢? 内存地址就是一个16进制数字 int * ptr_year ; ptr_year = &year ; 指针本质是变量——盒子,只不过装的东西是——地址 如图,右边的指针变量指向了左边的变量 当一个变量(指针)存放了另一个变量地址时,就说右边的指针变量指向了左边变量 基本用法: 数据类型 * 指针变量名 ; 例如: ——int * ptr_num ; ——char * ptr_name ; ——float * money_ptr ; ——double * p_price ; 命名时候最好加上ptr 注意:在头文件 < stdio . h > 中,NULL被定义为常量,int * ptr_num = NULL ; 指针的初值为空,表示指针不指向任何地址 第二个运算符 *( 间接运算符 ) :取这个地址所对应的值,当我遇到*时( 指针前面遇到*时 )就会根据这个地址去找这个地址所对应的 空间,把这个空间中的值改掉 相当于在操作空间 ,如图上

C/C++ 笔记、Python 笔记、JavaWeb + 大数据 笔记

▼魔方 西西 提交于 2019-11-30 05:46:44
Keras、PyTorch、MXNet 用户画像 C、C++笔记 JavaWeb+大数据笔记 CDH 6、CDH5 Python笔记 https://pan.baidu.com/s/1OBd1rbwGx0F8YnefM7R0Uw 提取码0hal https://pan.baidu.com/s/1TKNZ6TtDxDtDUnezrcXJ8Q 提取码2ber https://pan.baidu.com/s/1_XWMwcoNuDPdE3xkluo08A 提取码b12m https://pan.baidu.com/s/1eW8YSrasGiTXpBFSSJd78Q 提取码7aeu https://pan.baidu.com/s/1xi_3T6Nw__Sy-QQaN29O4Q 提取码1gcs 1.CDH 6 的安装和使用 、CDH5安装 https://blog.csdn.net/zimiao552147572/article/details/87190368 https://blog.csdn.net/zimiao552147572/article/details/94158217 2.用户画像 https://blog.csdn.net/zimiao552147572/article/details/88425850 3.Spark 实时处理 https://blog.csdn.net

[C++学习]数组

浪子不回头ぞ 提交于 2019-11-30 05:41:20
一、描述 数组是一种类似于vector的复合类型,但与vector不同的是,数组的大小确定不变,不能随意向数组添加元素。 二、定义和初始化 数组声明形如a[b],b必须为常量表达式并且大于0。 unsigned s = 4; // 不是常量表达式 constexpr unsigned size = 4; // 常量表达式 int a1[4]; // 含有4个整数的数组 int a2[s]; // 错误写法: s不是常量表达式 int a3[size]; // 含有4个整数的数组 默认情况下,数组的元素被默认初始化,默认初始化会令数组含有未定义的值。定义时必须确定数组类型,不能使用auto关键字。与vector一样,数组是一个对象,所以不存在引用的数组。 显式初始化 int a1[3] = {1, 2, 3}; // 含3个元素,分别是1,2,3 int a2[] = {1, 2, 3}; // 含3个元素,分别是1,2,3 int a3[5] = {1, 2, 3}; // 含5个元素,分别是1,2,3,0,0 string a4[3] = {"hello", "world"}; // 含3个元素,分别是"hello","world"和"" 字符数组 字符数组有一种额外的初始化形式:可以利用字符串字面值对此类字符串进行初始化。这种方法会在字符串字面值结尾处多一个空字符'\0'

数据结构实现(顺序表)

天涯浪子 提交于 2019-11-30 05:24:57
#include<stdio.h> //数据结构之顺序表 /*原理:地址连续的存储单元依此存储线性表的元素 基本运算:插入 删除 查找 排序 要点:结构的定义很重要,所有的操作都是建立在数据结构之上的。 */ /*顺序表结构体定义:*/ //def数据最大长度 #define Maxsize 100 //定义数据元素类型,可以适应更多类型 typedef int Datatype; //定义顺序表类型,只是定义了一个类型,而不是变量 typedef struct SeqList//此处的SeqList可以不要 { Datatype data[Maxsize]; int last; }SeqList; SeqList InitSlist() {//初始化顺序表 SeqList L;//通过函数调用来申请空间,创建变量 L.last = -1;//表示表空 return L; } void Creat_Slist(SeqList &L) {//创建顺序表,给data初步赋值 int flag;//标示数据规模 scanf("%d",&flag); for(int i=0;i<flag;i++) { scanf("%d",&L.data[i]); L.last++; } } int Getlength(SeqList &L) { return (L.last + 1); } int

指针

随声附和 提交于 2019-11-30 03:25:12
1.指针的指针 如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。 假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所示: 将这种关系转换为C语言代码: int a =100; int *p1 = &a; int **p2 = &p1; 2.指针数组 数组中的每个元素可以是基本类型,也可以复合类型,因此也可以是指针类型。例如定义一个数组 a 由 10 个元素组成,每个元素都是 int * 指针: int *a[10]; int **pa = &a[0]; 针数组声明的是数组,数组里放的是指针;而指向指针的指针声明的是指针,只是这指针指向另一个指针 来源: https://www.cnblogs.com/yangxingsha/p/11551303.html