石家庄市网站建设_网站建设公司_Photoshop_seo优化
2026/1/1 19:48:51 网站建设 项目流程

1)指针减法

  指针减指针的绝对值是指针和指针间元素的个数。并非所有指针都能相减,指向同一块空间的两个指针才能相减。

 

2)字符串传参

  strlen("abc")其实传递的是a的地址,“abc”在内存中为a b c \0

 

3)规则

  允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。

 

4)例子

image

 

image

 其实values[n]已经不属于values数组了,但是仍然可以通过这个来判断。

 

5)二级指针、指针数组

  e.g. int** a

  a中存放的是整型指针变量的地址

  e.g. int* a[10] = { &a, &b, &c};

 

6)结构体

  可以通过结构体类型来创建结构体变量,例如代码中的alpha。

#include<stdio.h>
struct People {int age;char name[20];
};
void print1(struct People a) {printf("%d\n%s\n", a.age, a.name);
}
void print2(struct People* p) {printf("%d\n%s\n", p->age, p->name);
}
int main() {struct People alpha = {12,"aaa"};print1(alpha);print2(&alpha);printf("%d\n%s\n", alpha.age, alpha.name);
}

 

7)内存中的存放

  静态变量、全局变量都是放在静态区,未初始化的话默认值为0。而局部变量是放在栈区的,未初始化的话默认值为随机值。

 

8)符号的陷阱

  如果要拿int i = -1 和sizeof(i)来比较,一个是有符号整型,一个是无符号整型(size_t),会发生算术转换。-1在补码中是111111111...(共32位),有符号会提升为无符号,导致-1被解释成一个非常大的数字。所以在此情况下 -1 > 4

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询