指针的相关运算,包括一维数组、二维数组、字符数组的sizeof、strlen运算
来源:互联网 发布:什么是模块化编程 编辑:程序博客网 时间:2024/06/07 01:38
一维数组
int a[] = { 1, 2, 3, 4 };printf("%d\n", sizeof(a));//整个数组 4*4printf("%d\n", sizeof(a + 0));//首元素地址 4printf("%d\n", sizeof(*a));//首元素 4printf("%d\n", sizeof(a + 1));//第二个元素地址 4printf("%d\n", sizeof(a[1]));//第二个元素 4printf("%d\n", sizeof(&a));//数组地址 4printf("%d\n", sizeof(&a + 1));//下一个数组地址 4printf("%d\n", sizeof(&a[0]));//第一个元素地址 4printf("%d\n", sizeof(&a[0] + 1));//第二个元素地址4printf("%d\n", sizeof(*&a));//整个数组 4*4
字符数组char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };printf("%d\n", sizeof(arr));//整个数组 6*1printf("%d\n", sizeof(arr + 0));//首元素地址 4printf("%d\n", sizeof(*arr));//首元素 1printf("%d\n", sizeof(arr[1]));//第二个元素 1printf("%d\n", sizeof(&arr));//首元素地址 4printf("%d\n", sizeof(&arr + 1));//下一个数组的地址 4printf("%d\n", sizeof(&arr[0] + 1));//第二个元素的地址 4
char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };printf("%d\n", strlen(arr));//随机值printf("%d\n", strlen(arr + 0));//随机值printf("%d\n", strlen(*arr));//97作为地址不可以访问printf("%d\n", strlen(arr[1]));//98作为地址不可以访问printf("%d\n", strlen(&arr));//随机值printf("%d\n", strlen(&arr + 1));//随机值printf("%d\n", strlen(&arr[0] + 1))//随机值
指针 char *p = "abcdef";//p中只存a的地址printf("%d\n", sizeof(p));//字符指针,4个字节 4printf("%d\n", sizeof(p + 1));//b的地址 4printf("%d\n", sizeof(*p));//首元素 1printf("%d\n", sizeof(p[0]));//首元素 1printf("%d\n", sizeof(&p));//p的地址 4printf("%d\n", sizeof(&p + 1));//跳过整个字符串的地址 4printf("%d\n", sizeof(&p[0] + 1));//b的地址 4
char *p = "abcdef";printf("%d\n", strlen(p));//6printf("%d\n", strlen(p + 1));//b~f 5printf("%d\n", strlen(*p));//错误printf("%d\n", strlen(p[0]));//错误printf("%d\n", strlen(&p));//随机值printf("%d\n", strlen(&p + 1));//随机值printf("%d\n", strlen(&p[0] + 1));//b~f 5
二维数组
int a[3][4] = { 0 };printf("%d\n", sizeof(a));//整个数组 12*4printf("%d\n", sizeof(a[0][0]));//第一个元素 4printf("%d\n", sizeof(a[0]));//第一行元素 4*4printf("%d\n", sizeof(a[0] + 1));//第一行第二个元素 4printf("%d\n", sizeof(a + 1));//降维,第二行第一个元素地址 4printf("%d\n", sizeof(&a[0] + 1));//第二行地址 4printf("%d\n", sizeof(*a));//降维,第一行元素 4*4printf("%d\n", sizeof(a[3]));//降维 16
阅读全文
1 0
- 指针的相关运算,包括一维数组、二维数组、字符数组的sizeof、strlen运算
- 数组相关的运算(sizeof,strlen)
- 一维数组和二维数组的运算(sizeof与strlen的区别)
- 一维数组、二维数组、字符数组、指针 相关的 sizeof 计算
- 一维数组,字符数组,字符串,二维数组在sizeof()和strlen()下的不同输出
- 有关数组的运算:sizeof()和strlen()
- 关于sizeof和strlen在一维数组的一些运算
- 字符串,字符指针和字符数组的sizeof和strlen
- 二维数组的运算与指针
- 数组的相关运算(sizeof和strlen的灵活应用)
- sizeof 和 strlen 在求解数组 字符数组 字符串 二维数组时候的小结
- 字符数组和指针的sizeof(),strlen()以及getline()
- 一维数组、二维数组、字符数组的&、sizeof等操作
- 数组的相关运算
- 数组的相关运算
- 数组的相关运算
- 数组的相关运算
- 字符数组,字符指针,sizeof,strlen总结
- 百炼OJ:2801:填词
- BP算法推导
- spring5.0 之@Primary注解的应用
- 深入理解extern "C" 的使用
- spring+activemq实战之配置监听多队列实现不同队列消息消费
- 指针的相关运算,包括一维数组、二维数组、字符数组的sizeof、strlen运算
- poj2299 Ultra-QuickSort(数状数组)
- Vs2013 简单定制安装
- Unity UGUI 利用Scroll View动态生成列表
- Java“==”与“equals()”的区别
- Android消息机制理解(Handler、Looper、MessageQueue)
- 常见控件3
- Hadoop
- 如何用JMeter对MySQL数据库进行压测?