知识点

简述数组指针与指针数组的区别

数组指针:是一个指针变量,指向了一个一维数组, 如int (*p)[4],(*p)[4]就成了一个二维数组,p也称行指针;

指针数组:是一个数组,只不过数组的元素存储的是指针变量, 如int *p[4]


简述一下数组和指针的区别🔥🔥🔥🔥🔥

1.概念:

(1)数组:数组是用于储存多个相同类型数据的集合。 数组名是首元素的地址

(2)指针:指针相当于一个变量,但是它和普通变量不一样,它存放的是其它变量在内存中的地址。指针名指向了内存的首地址。

2.区别:

(1)赋值:同类型指针变量可以相互赋值;数组不行,只能一个一个元素的赋值或拷贝

(2)存储方式

数组:数组在内存中是连续存放的,开辟一块连续的内存空间。数组是根据数组的下进行访问的,数组的存储空间,不是在静态区就是在栈上。

指针:指针本身就是一个变量,作为局部变量时存储在栈上。

(3)求sizeof

数组所占存储空间的内存大小:sizeof(数组名)

数组的元素个数: sizeof(数组名)/ sizeof(数据类型)

无论指针的类型是什么,32位平台永远是4,64位平台永远是8。



主函数→int main(int argc, char ** argv)函数中,参数argc和argv分别代表什么意思?

1)int argc 命令行参数个数

用来统计程序运行时发送给main函数命令行参数个数(上面那个203等,就是3个)

ps:命令行参数相当于外部的数据(以空格隔开,要是本身含空格要加上字符串"内容"

(2)char * argv[] 字符串数组

  用来存放指向字符串的指针元素,每一个指针元素指向一个字符串参数。

各成员含义如下

简述结构体和共同体的区别:

1.struct和union都是由多个不同数据类型成员组成。

struct包含所有成员

union在同一时刻只能包含一个被选中的成员

2.在不考虑字节对齐补齐的情况下

strcut的字节数是所有成员的总字节数

union的字节数是最大成员字节数

3.赋值

struct不同成员之间赋值是互不影响的

union成员间的赋值将会对成员重写,原来的值就不存在了

简述一下全局变量和局部变量?

1.作用域不同:

全局变量作用于整个函数,局部变量作用于当前函数或者一个循环内

2.内存存储方式不同:

全局变量存储在静态全局区中

局部变量存储在栈区

3.生命周期不同

全局变量随着函数的销毁而销毁,跟主程序生命周期一样

局部变量生命周期在当前函数内或者循环内,随着函数退出或者循环退出就不存在了

4.使用方式不同

全局变量声明后在函数的各个部分都可以使用

局部变量声明后,在函数内部会优先使用局部变量,退出后就不存在了


简单叙述一下,原码,反码,补码以及他们的区别

引入反码和补码是为了简化二进制的减法计算

一个整数在计算机内是通过二进制进行存储的,该二进制最左边一位代表符号位,1代表负数,0代表正数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容