`

指针(一)、指针运算;指针常量,指针变量

 
阅读更多

指针运算

参见这里==> http://c.jpkc.cqepc.com.cn/c_resource/C_Cai_assistant/9/9-2.htm

 

#include <iostream>
using namespace std;

/*
  输出: 
10      20      30      40      50
0x7e17f0
10
0x7e17f4
20
-----------------
0x7e17f4
20
0x7e17f4
21
-----------------
0x7e17f4
21
30
-----------------
0x7e17f8
30
31
0x7e17f8
31
-----------------
*/
int main(){
    //int数组{10,20,30,40,50} 
    int *p=(int *)malloc(5*sizeof(int));
    
    for(int i=0;i<5;i++){
        *(p+i)=(i+1)*10;
    }
    
    //输出值
    for(int i=0;i<5;i++){
        cout<<*(p+i)<<"\t";
    }
    cout<<endl;
    
    //*p++
    cout<<p<<endl;
    cout<<*p++<<endl;      //这里的++是对指针的运算 
    cout<<p<<endl;
    cout<<*p<<endl;
    cout<<"-----------------"<<endl;
    
    //(*p)++
    cout<<p<<endl;
    cout<<(*p)++<<endl;    //这里的++是对指针指向的内容运算 
    cout<<p<<endl;
    cout<<*p<<endl;
    cout<<"-----------------"<<endl;
    
    //*++p;   ==> 指++ ,再取出指向的单元内容 
    cout<<p<<endl;
    cout<<*p<<endl;
    cout<<*++p<<endl;
    cout<<"-----------------"<<endl;
    
    //++*p;   ==> 指针指向的内容加1
    cout<<p<<endl;
    cout<<*p<<endl;
    cout<<++*p<<endl;
    cout<<p<<endl;
    cout<<*p<<endl; 
    cout<<"-----------------"<<endl;
    
    
    free(p);
    
    system("pause");
    return 0;
}
 

**************************************************************

指针常量,指针变量(sizeof使用注意)

 

1.    关于sizeof()
    (1) int h[10];
    sizeof(h)==10*4    //h:指针常量
    (2) int *h;
    sizeof(h)==4    //h:指针变量
    (3)    void fun(int h[10]){
            sizeof(h)==4    //h:指针变量
        }
2. 指针常量,指针变量
    在传参数的时候,实参是指针常量,那个副本指针就成了指针变量了
    (1)指针常量:指针h内容不能修改,指向的地址内容也可以修改
    (2)指针变量:指针h内容可以修改,指向的地址内容也可以修改

 

#include <stdio.h>
#include <iostream>
using namespace std;

int h[10];
bool flag=false;

void print(){
	int i;
	for(i=0;i<10;i++){
		printf("%d\t",h[i]);
	}
	printf("\n");
}

void fun(int *h){
	int i;
	for(i=0;i<10;i++)
		h[i]=i;
}

void fun1(int* h){
	memset(h,0,sizeof(h));
}

void fun2(int h[10]){
	memset(h,-1,sizeof(h));
}

int main(void){
	print();
	fun(h);
	print();

	fun1(h);
	print();

	fun2(h);
	print();

	memset(h,-1,sizeof(h));
	print();

	return 0;
}
 

心得:

一般在使用memset()时,都不要将memset()放到子程序中初始化一个指针参数对应数组,直接在外面memset()就好了。避免出错!

分享到:
评论

相关推荐

    指针变量的定义和运算指针变量作函数参数PPT课件.pptx

    指针变量的定义和运算指针变量作函数参数 指针变量是 C 语言中的一个重要概念,它允许程序员直接访问和操作内存中的数据。指针变量可以作为函数参数,传递给函数,以便在函数中进行操作。下面是关于指针变量的定义...

    指针 指针变量运算 指针数组相关

    指针变量运算与指针数组相关知识点 指针变量是C语言编程中一个非常重要的概念,它允许我们直接访问和操作内存中的数据。指针变量是存储了数据地址的一种变量,它可以是数组、字符串、函数或普通变量的地址。 1. ...

    指针变量的定义和运算指针变量作函数参数PPT学习教案.pptx

    本文将详细讲解指针变量的定义、运算以及指针变量作为函数参数的用法。 首先,我们需要理解指针和指针变量的基本概念。在计算机中,所有的数据都是存储在内存中的,每个内存单元都有一个唯一的地址。指针就是一个...

    数组的指针和指向数组的指针变量

    数组的指针和指向数组的指针变量是编程语言中一个重要的概念。数组的指针是指向数组在内存中的起始地址,而指向数组的指针变量是指向数组元素的指针变量。 概念: * 数组的指针:数组在内存中的起始地址,数组元素...

    指针与指针变量.txt

    本文将深入探讨指针与指针变量的基础概念、如何声明与初始化指针变量、指针的算术运算以及它们在实际编程中的应用。 #### 1. 指针与指针变量的定义 - **指针**:指针是一种特殊的变量,它存储的是另一个变量或数据...

    C语言指针变量的运算_C语言中文网1

    《C语言指针变量的运算》 在C语言中,指针是编程中非常重要的一个概念,它能够存储变量的内存地址,进而实现对内存的直接操作。本篇将深入探讨C语言指针变量的运算,包括指针的加法、减法以及比较运算。 9.1 指针...

    C语言指针变量研究.pdf

    指针变量是C语言程序设计中的一种基本数据类型,它占有重要地位,指针变量的灵活性是C语言的主要特色之一。指针变量能够方便表示各种复合数据类型,可以使用数组和字符串,同时也可以处理内存地址。 指针和地址的...

    指针的下标运算.zip

    指针变量存储的是另一个变量的内存地址。当我们声明一个指针并将其初始化为某个变量的地址时,如`int *p = &var;`,`p`就指向了`var`所在的内存位置。 接下来,我们讨论下标运算。在C/C++中,数组名本质上是首元素...

    C语言中的指针是一种变量.docx

    也用于声明指针变量。 指针的算术运算: 指针可以进行加法和减法运算,但只能与整数进行运算,结果仍然是一个指针。 指针的加法运算会根据指针指向的数据类型大小进行偏移。 指针与数组: 数组名本身就是一个指向...

    浅谈C语言中指针变量的定义与应用 (1).pdf

    浅谈C语言中指针变量的定义与应用 _pointer_是C语言中最具特色的内容,也是学习C语言的一个难点。正确而灵活地运用它,可以有效地表示复杂的数据类型,使程序简洁、...C语言、指针、指针变量、指针运算、数组、字符串

    c语言:我眼中的指针(教你彻底认识指针)

    - `*` 表示这是一个指针变量。 - `pointer_name` 是指针变量的名字。 例如: - `int *ptr;` 定义了一个指向整型变量的指针 `ptr`。 - `char *ptr;` 定义了一个指向字符型变量的指针 `ptr`。 #### 四、多级指针 ...

    用P0 口显示指针运算结果.zip

    这个压缩包“用P0 口显示指针运算结果.zip”包含了一个C语言程序(ex26.c)和相关开发环境文件,以及一个名为“重要说明.txt”的文档,很可能是用来解释如何通过P0口显示指针运算的结果。 首先,我们要理解指针在...

    c语言指针学习笔记

    指针赋值运算将变量地址赋给指针变量,或者将一个指针变量的值赋给另一个同类型指针变量。取内容运算符*用于访问指针指向地址的内存内容。指针的加减运算通常用于指针指向数组元素时,可以移动指针到数组的其他元素...

    C语言指针的基础练习题

    ` 声明了一个名为 `p` 的指针变量,指向一个整型变量。 知识点 2:指针的运算 题目 3 和 4 涉及到指针的运算。指针运算包括指针的加法、减法、比较等操作。例如,`p++` 将指针 `p` 递增到下一个元素,而 `*p` 则是...

    C语言中指针变量的教学探讨.pdf

    指针变量的分类包括简单变量、指针变量、一维数组变量等。在教学中,笔者对指针变量的形式做了介绍,强调了地址和值的关系。例如,指针变量p可以保存简单变量a的地址(门牌号),而该门牌号的房间中存的是数值10。 ...

    指向指针的指针的加减操作

    如果有一个指针变量,它存储了一个普通变量的地址,那么二级指针就存储了这个指针变量的地址。在C语言中,一个指针变量的声明通常使用星号(*)来表示。例如,int *a是一个指向整型变量的指针,而int **b是一个指向...

    指针的概念

    通俗地说,就是指针变量能够存储哪种类型的地址。确定指针类型的最简单方法是从指针声明语句中去除指针名称和星号(*),剩余的部分即为指针的类型。例如: - `int *ptr;` 的指针类型是 `int*`。 - `char *ptr;` 的...

    C语言指针详细课程

    10.2.1 定义一个指针变量 定义指针变量时,我们需要使用星号(*),如`int *p;`定义了一个指向整型变量的指针`p`。 10.2.2 指针变量的引用 获取变量地址使用取地址运算符(&),如`int x = 10; int *p = &x;`,此时`p`...

    C语言指针练习填空和阅读程序题

    在C语言中,指针可以声明为一个指针变量,例如:`int *p;`,其中`p`是一个指向整型变量的指针。 二、指针运算 指针运算是指针的一种操作,包括指针的加法、减法、乘法、除法等。例如,`*p`表示指针`p`所指向的变量...

    11.第十一章 指针.txt

    在一个指针变量中存放一个数组的首地址,因为数组是连续存放的,通过访问指针变量取得数组的首地址,也就找到了该数组。在C语言中,一种数据类型或数据结构往往占有一组连续的内存单元,用指针描述一个数据结构的首...

Global site tag (gtag.js) - Google Analytics