C语言——指针 ( 1 )

一.指针的概念

1.概念:指针就是变量的地址。   (&是取地址符,这是指针)

int main()
{
   int a = 4;   
   printf("%d\n", a);     //输出变量a的内容
   printf("%x\n", &a);    //输出变量a的地址
   return0;
}

2.变量的访问方式:

   (1)直接访问:之前的访问都采用了直接访问的方式。在定义变量、编译时,系统会给变量随机分配相应的储存空间,同时也会产生一个变量和内存地址。

    (2)间接访问:在整形变量、字符型等变量中储存的是数值或字符。在C语言中还有一种定义变量的方式,那就是根据变量储存的地址,若定义了变量整型变量p,通过赋值运算符将变量a的地址赋给他(p = &a)。通过变量p访问变量a,需要先通过变量与内存关系得到a的地址,再通过这个地址访问变量a,这种方式就是间接访问。

3.指针和地址:在C语言中,把地址称为指针。如果变量中保存的是其他变量的地址,这种变量称为指针变量,可以把指针变量的变量简称指针。

二.指针变量

1.指针变量的定义:  类型说明符 * 指针变量名      (类型说明符指定指针的变量类型,可以是整型、实型、字符型、数组、结构体等数据类型。指针变量名表示变量称,必须是合法标识符。)

例如:
1.定义时初始化:

int a;
int *p = &a;

2.先定义后赋值:

int x, *p;
p = &x;

拓展:

 

类型说明符

一般用于修饰int

第一类:说明长度的

  • short
    short占用2个字节(16bit),取值范围是-2^15 ~ 2^15-1

  • long
    在64位编译器上,long占用8个字节(64bit),取值范围是-2^63 ~ 2^63-1
    在32位编译器上,long占用4个字节(32bit),取值范围是-2^31 ~ 2^31-1

  • long long
    long long占用8个字节(64bit),取值范围是-2^63 ~ 2^63-1

  • 注意点:
    1.企业开发一般不用long,用long long
    2.数据类型超出了对应的取值范围,就会导致存储的数据不对
    3.short的长度不能大于int,int的长度不能大于long
    4.char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型
    5.C语言不看怎么存储,看怎么读取,short -----> %hi,long -----> %li, long long -----> %lli


第二类:说明符号的

  • signed
    signed int等价于signed,unsigned int等价于unsigned
    signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数

  • unsigned
    表示无符号,也就是说最高位并不当做符号位,所以不包括负数。
    unsigned的取值范围是:0 ~ 2^32 - 1

  • 注意:
    如果想输出unsigned定义的一个正数,占位符用%u
    unsigned应用场景:银行存款的记录(提高阅读性),学生成绩等

合法标识符

C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vc++全版本组件大全 VC++运行时(Visual C++ Runtime)是VC++开发环境中用于支持C和C++程序运行的基础库集合。这些库包含了执行C/C++程序所必需的基本函数和数据结构,例如内存管理、字符串操作、输入输出处理、异常处理等。VC++运行时库分为静态库和动态库两种形式,以适应不同类型的项目需求。 静态链接库 vs 动态链接库 静态链接库(Static Linking Libraries):在编译时,静态库的代码会被直接嵌入到最终生成的可执行文件中。这意味着每个使用静态库的程序都会包含库代码的一个副本,导致最终程序的体积较大,但不需要外部库文件支持即可独立运行。在VC++中,静态链接库的例子有LIBC.lib(用于单线程程序)和LIBCMT.lib(用于多线程程序)。 动态链接库(Dynamic Link Libraries):与静态链接相反,动态库的代码并不直接加入到应用程序中,而是在程序运行时被加载。这使得多个程序可以共享同一份库代码,节省了系统资源。VC++的动态运行时库主要通过msvcrt.dll(或其变体,如MSVCRTD.dll用于调试版本)实现,与之配套的导入库(Import Library)如CRTDLL.lib用于链接阶段。 运行时库的版本 VC++运行时库随着Visual Studio版本的更新而发展,每个版本都可能引入新的特性和优化,同时保持向后兼容性。例如,有VC++ 2005、2008、2010直至2019等多个版本的运行时库,每个版本都对应着特定的开发环境和Windows操作系统。 重要性 VC++运行时对于确保程序正确运行至关重要。当程序在没有安装相应运行时库的计算机上执行时,可能会遇到因缺失DLL文件(如MSVCP*.dll, VCRUNTIME*.dll等)而导致的错误。因此,开发完成后,通常需要分发相应的VC++ Redistributable Packages给最终用户安装,以确保程序能够在目标系统上顺利运行。 安装与部署 安装VC++运行时库通常是通过Microsoft提供的Redistributable Packages完成的,这是一个简单的过程,用户只需运行安装程序即可自动安装所需组件。对于开发者而言,了解和管理不同版本的运行时库对于确保应用程序的广泛兼容性和可靠性是必要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Franic_wy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值