在写C/C++时突然的疑问(基础知识)

注释方法

//TODO: (未实现)……

//UNDONE:(没有做完)……

//HACK:(修改)……

视图>任务列表
即可显示所有带有TODO注释的代码位置

存储结构

内存分为堆区,栈区,静态区,代码区。 全局变量和静态变量存放在静态区,局部变量存在在栈区,动态申请的变量(即new,malloc函数申请的变量)存放在堆区。

数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。

而与它相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为在非线性表中,数据之间并不是简单的前后关系。

const

const int *p;是指定义了一个指针,这个指针指向的是一个整型常数,这个指针指向的值不能被改变,比如const int *p=&i;那么就说明i的值不能再被改变了,但是p还可以指向别的值。
int *const p=&i;是指定义了一个常指针,指向i,这个指针的值不可以被改变,就是说这个指针不可以再指向别的值了,但是i的值是可以改变的。
const int *const p=&i;是指定义了一个常量指针指向了一个整形常量,这个指针的值和它指向的值都不可以被改变,所以p的指向和i的值均不能被改变。

c stream怎么用?

参考此文

++前置与后置区别

“a=i++”的作用相当于先将变量i的值保存到变量a中,再将变量 i 的的值加 1 。“a=++i”相当于将变量 i 的值先加 1 再保存到变量 a 中。

new char[length] / new float[length]

float *p=new float[100]; //在堆中开辟100个float即100×4=400个字节的内存(3200bit)。

new char(33) 与new char[33]

前者分配一个单元并用33初始化一个char字节的堆内存,后者分配了一个字符数组内存区,分配33个char字节的堆内存,相当于前者的33倍空间。

_finddata_t

C语言里数组存储为什么是先行后列?

行列出来就是矩阵了,多维数组与矩阵不一样,C语言并没有矩阵这类数据结构,多维数组维度固定,地址偏移计算方法也是固定的,因此使用多维数组模拟矩阵就决定了访问方式的固定

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值