C语言学习第七章

今天开始学习指针,指针在C语言中具有很重要的地位,按照老师所说,学C学不好指针跟没学一样,可见指针在C语言中的重要地位.废话不多说,首先我们先要知道什么是指针.

指针:指针是一个变量,它存储另一个对象的内存地址,如果一个变量存储另一个对象的地址,则称该变量指向这个对象 。

换言之指针也是一种变量,只不过和平常变量不同的是指针内存储的是另一个对象在内存中的存储地址.指针内的值是一个十六进制的数值.

由于指针值是数据,指针变量可以赋值,所以一个指针的指向在程序执行中可以改变。指针p 在执行中某时刻指向变量x,在另一时刻也可以指向变量y

1.   定义的格式

l   数据类型 *指针变量名;

l   int *p;

2.   先定义后赋值

l   简单取值

int a = 10;

int *p;

p = &a;[A1]

printf(“%d”, *p[A2] );

int nums[10];

p=nums;

l   简单改值

*p = 9;

3.   定义的同时赋值

int a = 10;

int *p = &a;

4.   注意点

l   int *p;   p = 1000;

l   int *p;   *p = 100;

l   int *p;  *p = &a;

l   &p输出指针里面存储的地址值

l   其他指针类型说明,比如float *p;  char *p;

不能乱用类型,比如int a = 10;  float *p = &a;


[A1]为指针赋值,赋值运算符右侧必须是一个地址,如果是普通变量需要在前面加一个取地址运算符 &;如果是另一个指针变量或者是一个数组,不需要加 &运算符

  • [A2]运算符 * 用于返回指针指向的内存地址中存储的值
时间: 2024-10-05 09:59:16

C语言学习第七章的相关文章

iOS学习笔记---c语言学习第七天

结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符  成员名: … 类型说明符  成员名: }: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { struct teacher{ char name[30]; char sex; int age; char course[30]; }; typedef struct teacher Teacher; Teacher c

汇编语言学习第七章-更灵活的定位内存地址的方法

本博文系列参考自<<汇编语言>>第三版,作者:王爽 前面已经通过类似[0]和[bx]的方法进行了内存定位了.本章将涉及更多内存地址定位和编程的方法. 7.1 and 和 or 指令 (1) and指令,逻辑按位与指令 例如: mov al,01100011B and al,00111011B 执行后 al=00100011B and指令可以用来将某个数的位置为零. 比如我们要将al的第二位置为零,则: and al,11111101B 依次类推. (2) or指令,逻辑按位或指令

C语言学习第六章

今天开始尝试改变! 今天要学习函数,一个C语言中的重要组成部分. 首先先聊聊为什么要使用函数?随着学习的深入很多人会发现某段的代码重复使用的几率很大,而如果用一次写一次的话很明显的效率就会比较低,如果有一种方法可以把之前写的相同或者相差不大的代码拿到现在来用的话是不是能提高写代码的效率呢,而且如果出错了纠正的时候也更加的清晰明了.这个时候我们就用到了今天将要学习的内容:函数,它很好的解决了我们想把一段代码多次重复使用的需求.下面让我们看看什么是函数,他的定义是什么. 函数:为了完成某些功能而编写

C语言学习入门 (七) 变量与函数,static和extern关键字

局部变量 1> 定义:在函数内部定义的变量,称为局部变量.形式参数也属于局部变量. 2> 作用域:局部变量只在定义它的函数内部有效,即局部变量只有在定义它的函数内部使用,其它函数不能使用它. 全局变量 1> 定义:在所有函数外部定义的变量,称为全局变量. 2> 作用域:全局变量的作用范围是从定义变量的位置开始到源程序结束,即全局变量可以被在其定义位置之后的其它函数所共享. 变量的存储类型 C语言根据变量的存储类型(变量存储的位置:1. 运行时堆栈 2.普通内存 3.寄存器)的不同,

C语言学习笔记(七) 函数指针

"函数指针"和"指针函数"是一对容易把人弄晕的概念,但我们只要把握好定语,倒也不难理解.这两个名词都是简称,"指针函数"是"返回值为指针的函数",而"函数指针"则是"指向函数的指针".这篇主要讲讲函数指针. 我们讲有int 指针,char指针,它们都是一个指针指向这个变量的实际地址.而C语言在编译函数的时候每个函数会有一个入口地址,当我们用一个指针指向这个入口地址,它就称为函数指针.有了

R语言学习 第七篇:列表

列表(List)是R中最复杂的数据类型,一般来说,列表是数据对象的有序集合,但是,列表的各个元素(item)的数据类型可以不同,每个元素的长度可以不同,是R中最灵活的数据类型.列表项可以是列表类型,因此,列表被认为是递归变量,与之相对,向量,数组,矩阵,数据框被认为是原子变量. 一,创建列表 列表由list()函数创建,每个参数使用逗号分割,用于指定列表项的内容,列表中的元素数量不限,类型不限.列表项的名称是可选的,可以创建无名的列表项:列表的每一个item,都可以显示命名,例如,name1=i

golang语言学习第七课:数组

go语言中,定义数组有3种方法: //定义数组的3种方法 var arr1 [5]int //必须在[]中填入数组的大小,如果不填则不是数组,而是切片 arr2 := [3] int {1,3,5} //第二种定义数组的方法,只能在函数体内用,必须给初始值. arr3 := [...] int {2,4,6,8,10} //第三种,让编译器去计算个数的方法. var grid [4][5]int //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组 //

强化学习第七章

1.策略迭代.价值迭代.泛化迭代的前提条件:智能体知道环境的状态转移概率,即是基于模型的问题 2.蒙特卡洛方法采样:随机采样估计期望值,通过样本序列逼近真实的期望值.  成立原因:大数定理. 3.探索和利用,探索指的是不拘于当前的表现,选择不同于当前策略的行动:利用是持续使用当前的最优策略,尽可能的获得更多的回报. 4.蒙特卡洛方法的缺点:估计值的方差大.估计值方差大则均值收敛需要更长时间.方差大的原因:每次掷骰子的数字都不同,采样频率的问题,会多次出现同一个状态,在计算的过程中没有区分第一次到

Python语言学习 (七)1.2

HTMLParser: feed:向解析器喂数据 handle_starttag(tag,attrs):处理开始标签 handle_data(data):处理标签里的数据体,data数据文本 handle_endtag(tag,attrs):处理结束标签 #!/usr/bin/python# encoding: utf-8 from __future__ import print_functionfrom HTMLParser import HTMLParserimport requestsim