最全学了这么久C语言我居然不知道变量常量?_c语言定义负数常量,2024年最新2024大厂C C++高级面试题及答案

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

其中unsigned是无符号的意思,C语言中有些数据不可能是负数,没有必要用到最高位表示正负,故unsigned类型的数据,其最高位不再表示负号,而是跟后面的位一样代表大小。

存储地址的变量称为指针变量。

指针变量在内存中所分配的字节数一般与int类型变量相同,C语言中可以用运算符sizeof()求得某种类型或某项数据在内存中占用多少字节。

char c;
float x;
printf("%d,%d",sizeof(c),sizeof(char));             //输出1,1
printf("%d,%d",sizeof(float),sizeof(x));            //输出4,4

3.变量的定义

指针变量的定义和普通变量定义格式类似,区别是:指针变量名字前面要多写一个 *,例如:

char *p;                                      //定义了一个指针变量p,用来存char型变量的地址

int *p1,*p2;                                 //定义了两个指针变量p1,p2,都用来存int型变量的地址

float x,*p3,y,*p4;                         //定义了两个普通变量x,y和两个指针变量p3,p4

变量必须先定义,才能使用。

定义变量的目的:

一是给变量起个名字,以便在程序中分辨它;二是把变量的类型告诉计算机,以便让计算机给变量分配空间。因为有了类型,计算机才能知道该给变量分配多少字节,才能知道变量的值用什么方式存储。例如:若是字符变量则分配1字节,变量的值用ASCII(也叫ASCALL码);若是短整型变量则分配2字节,用补码存储…

4.变量的命名

不管是变量,还是今后要学到的数组,函数和结构体等,每一样东西都应该有一个名字作为标识,其名字即为标识符。

C语言对标识符有如下要求:

<1>标识符只能由英文字母,数字和下划线组成,但不能以数字开头。

<2>C语言是区分大小写的,即大小写被认为是两个不同的字符。因此name和Name是两个不同的标识符。

<3>不允许用关键字作为标识符。关键字是指已经赋予一定含义的字符序列,如int ,float,for ,if ,return 等

<4>标识符有长度限制,超过限制时,后面的字符不起作用。长度建议不要超过32个字符

5.变量的属性

每个变量都有值和地址两个属性。

变量的值指的是变量在内存中所存的内容。变量的地址指的是变量在内存中所处的位置,其起始地址称为变量的地址。

设有代码“short a=5;”,则程序运行时需要在内存中分配两个字节作为变量a的存储区域,并且将5存放进去。设系统给a分配的空间是内存中1027和1028两个单元,如图下,则变量的值是5,变量的地址是1027。

把内存的哪两个字节分配给变量是不可预知的,但变量分配在什么地方,系统是知道的。每当在内存中给一个变量分配了空间,系统都会把变量名和它的地址,类型等信息记录下来,以便将来找到它,存取它。

因此,在变量获取空间之后,其地址是可以被知道的,用取地址运算符&便可以获取变量的地址。

下面的程序可以输出整型变量a的两个属性

#include<stdio.h>
main()
{
	int a=5;
	printf("%d,%p\n", a, &a);              //%p表示用十六进制数输出地址
	return 0;
}

运行结果

试一试:把代码中的“=5“去掉,运行一遍程序,看a还有没有值。


6.变量的赋值和赋初值

给指针变量赋值

int a,*p;                  //在内存中给a和p分配空间

p=&a;                     //把a的地址存到p中,即给p赋值

赋初值

在给变量分配空间的时候就向其中存放数据,称为赋初值。例如:

int a=10;

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值