C语言学习--常量指针与指针常量
指针常量
#include<stdio.h>
#include<string.h> //常量指针:是一个指针, 定义不用初始化, 能改变指向,但是指向的内容不能被修改
const int* p; //指针常量: 是一个常量,这个常量的值是一个指针, 定义的时候必须初始化, 并且不能改变指向, 可以改变指向的内容
// const 修饰p1 代表p1是一个常量, p1是什么样的常量呢, 是指针类型的, 指针就是地址, 所以P1的指向是不能改变的, 就是说p1代表的地址不能修改, 但是这个地址里面的内容是可以修改的
int* const p2; int main()
{
int a = 10;
int b = 20;
int* const p1 = &a; //定义的时候必须初始化 printf("%d\n", *p1); *p1 = 100;
printf("%d\n", *p1);// 100, 指针常量的内容是允许被修改的 p1 = &b;//报错, 指针常量的指向是不能被修改的, p1是地址, 这个地址是不能被修改的 }
常量指针
#include<stdio.h>
#include<string.h> //常量指针:是一个指针, 定义不用初始化, 能改变指向,但是指向的内容不能被修改
const int* p;
//首先是一个指针, 但是这个指针指向的内容是一个常量 int main()
{
const int* p1; int a = 10;
int b = 20; p1 = &a;
printf("*p1:%d\n",*p1);//10
p1 = &b;
printf("*p1:%d\n",*p1);//20 指向是可以改变的 *p1 = 100;//报错, 指针里面的内容是不能改变的 }
C语言学习--常量指针与指针常量的更多相关文章
- Go语言学习笔记九: 指针
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...
- Go语言学习笔记(2)——变量、常量
1. 变量(变量由字母.数字和下划线组成,且不能以数字开头!) 1.1 第一种 var name type // 未赋值时使用默认值 name = value 1.2 第二种: 根据所赋的值 ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 指针
每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址. #include <iostream> using namesp ...
- C语言学习笔记 (007) - 数组指针和通过指针引用数组元素的方法总结
1.数组指针:即指向数组的指针 那么, 如何声明一个数组指针呢? ]; /*括号是必须写的,不然就是指针数组:10是数组的大小*/ 拓展:有指针类型元素的数组称为指针数组. 2.通过指针引用数组元素的 ...
- C语言学习004:数组与指针
在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的
- C语言学习笔记--函数与指针
1. 函数类型 (1)C 语言中的函数有自己特定的类型,这个类型由返回值.参数类型和参数个数共同决定.如 int add(int i,int j)的类型为 int(int,int). (2)C 语言中 ...
- 【原创】go语言学习(九)指针类型
目录 变量和内存地址 指针类型 值拷贝和引用拷贝 变量和内存地址 1.每个变量都有内存地址,可以说通过变量来操作对应大小的内存 var a int32 a = 100 fmt.Printf(“%d\n ...
- C语言学习笔记之函数指针与函数指针数组
指针函数:本质是一个函数: 是一个返回指针类型的函数int * sum(){ } 函数指针:本质是一个指针: 是一个指向函数的指针 int (*p)(int,int) = sum; p(5,6); i ...
- C语言学习笔记 (001) - 常量指针与指针常量的区别(转帖)
三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...
- C语言-常量指针与指针常量
最近倪健问我一个问题,他说:什么是常指针?什么是指向常变量的指针?请举例说明 我查阅资料后这么回答他了, 指针常量(常指针):int * const p : 指针是一个常量,也就是说它始终指向那个地址 ...
随机推荐
- JS语句创建简单表格
var line=3; var list=3; var table=document.createElement("table"); table.setAttribute(&quo ...
- 使用vault配置加密
简介 在使用ansible的过程中,不可避免的会存储一些敏感信息,比如在变量文件中存储帐号密码信息等. ansible通过ansible-vault命令行工具来提供对敏感文件的加密和解密. ansib ...
- windows搭建syncthing中继服务器和发现服务器
软件准备 1.stdiscosrv:发现服务器,下载地址 https://github.com/syncthing/discosrv/releases 2.strelaysrv:中继服务器,下载地址 ...
- 如何用adb连接android手机
如何用adb连接android手机 以下为手机"root"情况下操作....手机没root请拉到笔记最后,有解决方法 利用adb来连接手机, 有两种方式: wifi usb 通过w ...
- centos系统时间与硬件时间不一致
centos系统时间与硬件时间设置.同步 将系统时间设置成2018年7月31日 12:00:00 date -s "07/31/18 12:00:00" hwclock -s 将 ...
- ubuntu下安装使用jupyter
sudo snap install jupyter安装,jupyter notebook使用,到浏览器访问服务URL这种使用方式不再赘述. 如何在服务端开启jupyter服务供客户端使用有待研究. 本 ...
- 如何实现chrome谷歌浏览器多开(独立环境 独立cookie)、改任务栏图标
多开谷歌浏览器: 由于各种各样的原因,你可能需要在一个电脑登录某个平台,比如一个电脑登录3个公众号,或者3个知乎等等. 最简单的方案是,直接安装3个不同的浏览器,比如一个谷歌浏览器,一个火狐浏览器,一 ...
- IE和FireFox 对FORM enctype属性的认识存在差异
IE和FireFox 对FORM enctype属性的认识存在差异,一般来说对于动态创建的form,如果因为要上传文件的原因很自然的会使用类似如下的代码: 1 //create form 2 th ...
- gradle的配置
第一次接触公司的JAVA项目,使用了gradle,于是乎到网上搜索一番,终于弄明白了是个什么东东,由于之前也没有接触过maven和ant,所以对这个东西还是很陌生.好了,废话不多说,开始我的环境搭建. ...
- Mac连接交换机
接上免驱动的绿联,可以看到有一个usb串口设备: ls /dev/tty.* /dev/tty.Bluetooth-Incoming-Port /dev/tty.usbserial-AB0LU5PY ...