28-29-指针和数组
来源:互联网 发布:软件测试缺陷报告 编辑:程序博客网 时间:2024/06/06 03:08
1、数组的本质
#include <stdio.h>int main(){ int a[5] = {0}; int* p = NULL; printf("a = 0x%X\n", (unsigned int)(a)); printf("a + 1 = 0x%X\n", (unsigned int)(a + 1)); printf("p = 0x%X\n", (unsigned int)(p)); printf("p + 1 = 0x%X\n", (unsigned int)(p + 1)); return 0;}a = 0x4A6D54F0a + 1 = 0x4A6D54F4p = 0x0p + 1 = 0x4
2、指针与整数运算
3、指针与指针运算
4、指针比较
#include <stdio.h>int main(){ char s1[] = {'H', 'e', 'l', 'l', 'o'}; int i = 0; char s2[] = {'W', 'o', 'r', 'l', 'd'}; char* p0 = s1; char* p1 = &s1[3]; char* p2 = s2; int* p = &i; printf("%d\n", p0 - p1); //printf("%d\n", p0 + p2); //ERROR printf("%d\n", p0 - p2); // printf("%d\n", p0 - p); //ERROR //printf("%d\n", p0 * p2); //ERROR //printf("%d\n", p0 / p2); //ERROR return 0;}-3-16
#include <stdio.h>#define DIM(a) (sizeof(a) / sizeof(*a))int main(){ char s[] = {'H', 'e', 'l', 'l', 'o'}; char* pBegin = s; char* pEnd = s + DIM(s); // Key point char* p = NULL; printf("pBegin = %p\n", pBegin); printf("pEnd = %p\n", pEnd); printf("Size: %d\n", pEnd - pBegin); for(p=pBegin; p<pEnd; p++) { printf("%c", *p); } printf("\n"); return 0;}pBegin = 0x7ffdde8ffa10pEnd = 0x7ffdde8ffa15Size: 5Hello
5、小结
6、数组访问方式
7、下标访问与指针访问
8、a和&a的区别
#include <stdio.h>int main(){ int a[5] = {1, 2, 3, 4, 5}; int* p1 = (int*)(&a + 1); int* p2 = (int*)((int)a + 1); int* p3 = (int*)(a + 1); printf("%d, %d, %d\n", p1[-1], p2[0], p3[1]); return 0;}// A. 数组下标不能是负数,程序无法运行
9、数组参数
#include <stdio.h>void func1(char a[5]){ printf("In func1: sizeof(a) = %d\n", sizeof(a)); *a = 'a'; a = NULL;}void func2(char b[]){ printf("In func2: sizeof(b) = %d\n", sizeof(b)); *b = 'b'; b = NULL;}int main(){ char array[10] = {0}; func1(array); printf("array[0] = %c\n", array[0]); func2(array); printf("array[0] = %c\n", array[0]); return 0;}In func1: sizeof(a) = 8array[0] = aIn func2: sizeof(b) = 8array[0] = b
10、小结
阅读全文
0 0
- 28-29-指针和数组
- 指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 数组指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 会计证取消,财会软件和会计转型升级正当时
- python圣斗士修炼(二):学习使用IDE
- IDC预测华为最快今年超苹果丨国家网络安全中心喊话OFFICE,请尽快升级补丁【软件网每日新闻播报│第10-17期】
- 如何用c语言解决逻辑题选太子
- C++ 声明、定义、初始化、赋值
- 28-29-指针和数组
- The project was not built due to "Resource already exists on disk: '/xxx/WebRoot/WEB-INF/class
- ES6中的let const
- BZOJ4264 边集哈希
- 方法finalize()的应用
- Hdu 1561 The more, The Better 树上DP 解题报告
- java文件传输基础:序列化中子类和父类构造函数的调用问题
- 初识百分比布局
- ldap链接比较好的工具