week2,day4 指针

  关于这个C语言中最复杂的部分,老师只个初步的介绍了指针的意义,和最初步的使用方法。这里就做一个小结。

一、指针的定义

  指针本质上也是一个变量,用于存储另一个对象的内存地址;

  定义指针的格式:

    数据类型 *指针变量名;//数据类型应与其所指向的对象相一致,变量名即指针的标识符;

    例如:int *p;

二、指针使用方式

  1)针对普通变量赋值:

  int a = 10;

  int *p;

  p = &a//需对变量进行取址赋值;

  2)针对数组赋值:

  int nums[10];

  int *p;

  p=nums;//直接使用数组名,得到的是数组中起始数据的地址即nums[0]的地址,同时也可以针对具体的数组元素赋值;

  如果指针指向数组,可对指针加减运算从而获得数组不同元素的地址;

  如上述p++之后得到的是nums[1]的地址;

  3)利用指针直接代表变量

  如:int a=10,p=&a;

    则*p==a ;

  在指针名前加*可指向其地址代表的变量。

  4)指针清空

  p=0;或p=NULL;

  学的很浅,也没什么例子好举出的,主要还是两点:指针的值代表了其所指向的地址,而*指针名则代表了其地址中的内容。

时间: 2024-11-18 08:11:36

week2,day4 指针的相关文章

Go(day4[指针,Map])

Go指针 指针类型 普通类型,变量存的就是值,也就是值类型.指针类型存的是地址 获取变量的地址,用&, 比如 a:=6 获取a的地址:&a 指针类型,变量存的是一个地址,这个地址存的才是值!! 获取指针类型所指向的值,使用:* ,比如: var *p int ,使用*p获取p所向的值 指针初始化:默认值为nil 指针类型变量初始化: 使用其他变量地址给它赋值 使用new分配 测试一:传入一个int类型指针,并在函数中修改所指向的值 func test1(a *int)  {    //* 

Day4:T1小技巧(类似于指针操作)T2搜索+小细节

Day4:其中有很多小技巧get T1 一直没有听到过像这样的小技巧的略专业名词,有点类似于指针操作,之前有碰到过很多这样的题目 每次都是以不同的形式出现,但是感觉思想还是有点接近的吧(就比如某天有一题happy,貌似也是这类型的) 这类题目第一眼总是看起来特别的不能写,其实想到了这些技巧之后很简单 感觉这也没有什么规律性或是模板可言 大概的,就是指针思想+平时积累吧 说说这一题吧 在分析正解之前,我们先说一说比较容易想到的骗分方法 设男女人数相同时ans=0,如果下一个是男->ans++,el

[c/c++] programming之路(17)、高级指针

一.二级指针 二级指针的作用:1.函数改变外部变量指针2.外挂改变一个指针的值 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void main(){ 5 int a = 10; 6 int b = 20; 7 int *p1 = &a; 8 int *p2 = &b; 9 int **pp = &p1; 10 printf("%d,", **pp); 11 printf("\n%x,

C++学习笔记----2.4 C++引用在本质上是什么,它和指针到底有什么区别

从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传递过程中,被调

【转】父类子类指针相互转换问题

1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的: 2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类的: 3.当指向子类对象的子类指针被强制转换成父类指针的时候,也就是父类指针指向子类对象,此时,父类指针调用的虚函数都是子类的,而非虚函数都是自己的. 将上面三句话总结成一句话就是:当父类子类有同名非虚函数的时候,调用的是转换后的指针类型的函数: 当父类子类有同名虚函数的时候呢,调用的是指针转换前指

C++ Primer 学习笔记与思考_7 void和void*指针的使用方法

(一)void的含义 void的字面意思是"无类型",void差点儿仅仅有"凝视"和限制程序的作用,由于从来没有人会定义一个void变量,让我们试着来定义: void a; 这行语句编译时会出错.提示"illegal use of type 'void'".只是.即使void a的编译不会出错.它也没有不论什么实际意义. void真正发挥的作用在于: (1) 对函数返回的限定: (2) 对函数參数的限定. int f(void); equal t

当this指针成为指向之类的基类指针时,也能形成多态

this指针: 1)对象中没有函数,只有成员变量 2)对象调用函数,通过this指针告诉函数是哪个对象自己谁. 1 #include<iostream> 2 using namespace std; 3 class Shape 4 { 5 public: 6 //void cal_display(Shape* this) 7 void cal_display(){ 8 display(); 9 this->display(); 10 } 11 private: 12 virtual vo

指针x(超简单的x)

指针! 1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 /* 7 相加或者相乘 8 */ 9 10 int main() 11 { 12 int a,b,s,t; 13 cin>>a>>b; 14 int *p; 15 p=&a; 16 int *q; 17 q=&b; 18 s=(*p)+(*q); 19 t=(*p)*(*q); 20 printf(

二重指针实现排序

1 //双指针对十个数排序 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #define N 8 6 //2017.3.5 7 int main() 8 { 9 //初始化数组 赋值N个数 用指针数组指向 10 int num[N]; 11 int *pNum[N]; 12 int **p = NULL; 13 for (int i = 0; i < N; i++) 14 { 15 num[i] = rand() % 100;/