10深入理解C指针之---指针和常量

  该系列文章源于《深入理解C指针》的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教。

  指针作为C语言的左膀右臂,使用方便,修改容易,引用数据快速都是很有前景的应用。C语言中常量是值不能改变的量,由于在某些应用中,想要阻止没有授权的数据的修改时,就需要将指针和常量结合起来。

  一、指向常量的非常量指针:指针值可以改变,但是指针解引用值不能改变

    1、特征:

      1)、提供一种可移植的方式来声明与系统中可寻址的内存区域一致的长度

      2)、用作sizeof操作符的返回值的类型

      3)、用作内存相关函数malloc()和strlen()的参数类型

      4)、常用来声明字符个数、循环计数、数组索引的长度

      5)、可以用在指针的算术运算上

    2、代码应用:
      
  代码如下:

时间: 2024-10-06 09:43:03

10深入理解C指针之---指针和常量的相关文章

理解常量指针与指针常量?

constant *前面的是对被指向对象的修饰,*后面的是对指针本身的修饰 常量指针(被指向的对象是常量) 定义: 又叫常指针,可以理解为常量的指针,指向的是个常量 关键点: 常量指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改: 常量指针可以被赋值为变量的地址,之所以叫常量指针,是限制了通过这个指针修改变量的值: 指针还可以指向别处,因为指针本身只是个变量,可以指向任意地址: 代码形式: int const* p; const int* p; // // Created b

理解指针,和指针的指针

理解一个事物的最好方式,就是知道它的用途. 我对指针的理解总结起来就是一句话:如果你调用函数的时候,改变一个变量的值(包括基本变量.结构体.类,指针),那么你就需要它的指针. 由于C/C++ 调用函数的时候,永远都会拷贝一份参数,所以,你怎么折腾都无法改变原来的东西(java对于对象是传引用).所以,你就需要一个指针,直接改变那个变量的内存内容.贴代码: #include "stdio.h" void changeValue(int a, int b); void changeValu

数组指针与指针数组深度理解参考

数组指针和指针数组的区别:http://www.cnblogs.com/mq0036/p/3382732.html 指针数组和数组指针的区别:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html

c语言中指向整型指针的指针的理解

1 /************************************************************************* 2 > File Name: ptr_ptr_int.c 3 > Author: Mr.Yang 4 > Purpose:演示指向整型的指针的指针 5 > Created Time: 2017年06月03日 星期六 18时34分58秒 6 **********************************************

[转载]理解一般指针和指向指针的指针

申明:转自  http://www.cnblogs.com/dzry/archive/2011/05/12/2044835.html 在说指向指针的指针之前,不得不说指向变量的指针.先看如下示例: 1. 指向整型指针 先看如下示例: 1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int a = 5; 7 int * p = &a; 8 cout << "a = " &l

c语言中对指向指针的指针的理解?

1 /************************************************************************* 2 > File Name: ptr_to_ptr.c 3 > Author: Mr.Yang 4 > Purpose:演示指向指针的指针 5 > Created Time: 2017年06月02日 星期五 09时17分45秒 6 **************************************************

理解一般指针和指向指针的指针

在说指向指针的指针之前,不得不说指向变量的指针.先看如下示例: 1. 指向整型指针 先看如下示例: 1 #include <iostream> using namespace std; int main() { int a = 5; int * p = &a; cout << "a = " << a << endl << "&a = " << &a << en

深入理解 [指针函数] 、[函数指针]、[指针的指针]、[指向指针数组的指针]

指针函数 1.指针函数是指带指针的函数,即本质是一个函数.当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中. 函数返回类型是某一类型的指针: 格式: 类型标识符  *函数名(参数表) int *match(void *key_x,void *key_y); 解析:首先来说它是一个函数,只不过这个函数的返回值是一个地址值.函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针

指向指针的指针的理解和应用

总结: 1. 申请内存,此处GetMeory参数不用指向指针的指针将无法得到内存,多次调用还会造成内存泄露. 当然此处的GetMeory可以用返回指针的方式,这样就可以不用指向指针的指针. #include "stdafx.h" #include <iostream> using namespace std; void GetMeory(char **p, int num) { *p = (char *)malloc(sizeof(char) * num); //*p =