C语言学习笔记(3)

本文详细介绍了C语言中的指针概念,包括地址与指针的定义,如何定义指针变量,以及32位和64位操作系统中指针的大小。此外,阐述了指针在访问数组和字符串中的应用,指出数组名代表首地址,可通过指针法访问数组元素。同时,区分了字符串指针和字符串数组的不同,前者指针变量可改变但不修改字符串常量,后者则可以直接修改数组内容。
摘要由CSDN通过智能技术生成

第九章 指针

1、地址与指针
(1)地址
在内存中,地址就是可以唯一表示某一点的一个编号,即一个数字。
习惯上,在计算机里地址我们常常用其对应的十六进制数来表示,比如0x12ff7c这样。在我们的C程序中,每一个定义的变量,在内存中都占有一个内存单元,比如int类型占四个字节,char类型占一个字节等等,每个字节都在0~4,294,967,295之间都有一个对应的编号,C语言允许在程序中使用变量的地址,并可以通过地址运算符"&"得到变量的地址。
(2)指针
地址是逻辑地址的编号,而指针就是一个地址,也是一个地址。区别在于地址是常量,而指针是变量。
(3)定义指针变量
eg:int a = #
与类型说明符 int 共同说明这是一个指针变量。
②类型说明符表示该指针变量所指向的变量为何种数据类型,变量名即为定义的指针变量名。==C还提供
运算符获取地址上对应的值。==
指针存放的都是地址。在32位操作系统中,任何类型的指针变量都占四个字节,而64位操作系统中,任何类型的执政变量都占8个字节。
2
、数组与指针
通过数组下标可以确定数组元素在数组中的顺序和存储地址。由于每一个数组元素,相当于一个变量,因此指针变量可以指向数组中的元素,也就是说可以通过指针访问数组中的元素,对于一个指向数组元素的指针变量定义和赋值方法,与指针变量相同。*
在这里插入图片描述
C 语言规定,数组名代表数组的首地址,也就是第 0 号元素的地址。因此:
在这里插入图片描述
引入指针变量后,就可以用以下两种方法来访问数组元素:
(1)下标法,即用 a[i]形式访问数组元素,在前面介绍数组时都是采用这种方法。
(2)指针法,即采用*(a+i)或*(p+i)形式,用间接访问的方法来访问数组元素,其中 a 是数组名,p 是 指向数组的指针变量,其初值 p=a。
4、字符串与指针

char *str = “hello world”
这是对字符指针进行初始化。此时,字符指针指向一个字符串常量的首地址。

char str[ ] = “hello world”
在这个语句中,string 是数组名,代表字符数组的首地址。因此可以通过数组名 string 来访问字符串。

区别:
字符串指针和字符串数组两种方式都可以访问字符串,但它们有着本质的区别:字符指针 str 是个变量***,可以改变 str 使它指向不同的字符串, 但不能改变* str 所指向的字符串常量的值。 而string 是一个数组,可以改变数组中保存的内容。应注意字符串指针和字符串数组的区别。

eg:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值