-
函数指针的定义和调用
查看全部 -
字节序,就是 大于一个字节类型的数据在内存中的存放顺序。
计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。
我们现在有一个整数是258。用16进制表示是0x0102,然后我们把这个整数拆分成两个字节,第一个字节为 0000 0001,第二个字节为 0000 0010。
查看全部 -
这个到底怎么运行的??
查看全部 -
我们之前讲过栈内存,这个对象是分配在栈上面的,实例化的时候,调用了构造函数,而紧接着,main 函数就要结束了,这个栈对象就自动销毁了,销毁的时候,就调用了析构函数。
查看全部 -
其他答案是C代码,不是C++:
#include <stdio>
using namespace std;
int main()
{int i1 = 0x1122;
char* p1 = (char*)&i1; //强制转化为char*,因只有char 为1个字节,且char* 会指向最低位的字节。
if (p1[0] == 0x22 && p1[1] == 0x11) {
cout << "Little Endian 小端"<<endl;
}
else if (p1[0] == 0x11 && p1[1] == 0x22) {
cout << "Big Endian 大端" << endl;
}
system("pause");
}
查看全部 -
函數返回指針
查看全部 -
#include <stdio.h>
#include <stdlib.h>
int main(){
char* a=(char*)malloc(20);
char* b=(char*)malloc(5);
memcpy(b,a+15,5);//我们有一片 20 个字节的内存,我想拷贝这片内存中的后 5 个字节的内容到一片新内存
free(a);
free(a);
}
查看全部 -
#include <iostream>
int swap(int *a,int *b){
int t;
t=*a;
*a=*b;
*b=t;
}
int main(){
int a=10,b=20;
swap(&a,&b);
std::cout<<a<<" "<<b;
return 0;
}
查看全部 -
回调函数 钩子函数 函数指针(可以插入函数)
查看全部 -
比较特殊的是,数组名就是一个指针,不过数组名是一个常量指针,不能做累加或者累减操作。
*(p + 2)等价于p[2]
查看全部 -
数组名就是第一个指针 操作普通变量就用. 操作指针就用箭头->
查看全部 -
#include <stdio.h>
int main()
{
int i = 0x1122;
char * p = (char *)&i;
if (p[0] == 0x22 && p[1] == 0x11) {
printf("Little Endian\n");
}
else if (p[0] == 0x11 && p[1] == 0x22) {
printf("Big Endian\n");
}
}
判断电脑是大端字节序还是小端字节序
查看全部 -
^异或:参与运算的两个二进制相同则为0.否则为1.
~取反
<<左移 >>右移
查看全部 -
。
查看全部 -
指针的运算。
查看全部
举报