c语言中关于数组的一些基本运算
来源:互联网 发布:威锋认证的淘宝店 编辑:程序博客网 时间:2024/05/08 07:38
一.sizeof()的有关运算
知识:当数组名a单独放在sizeof()内部(即 sizeof(a) )时,a表示整个数组;当数组名a单独放在&后面时(即&a),a表示整个数组;其余的a都表示数组a首元素的地址;&a,表示数组a的地址,其实是a首元素的地址,一个整形大小为4个字节,一个字符型大小为1个字节
include<stdio.h>int main(){ int a[] = {1,2,3,4}; printf("%d\n",sizeof(a)); //整个数组的大小 16 printf("%d\n",sizeof(a+0)); //首元素的地址加0,还是首元素的地址 4 printf("%d\n",sizeof(*a)); //数组a首元素的大小 4 printf("%d\n",sizeof(a+1)); //数组a首元素的地址加1,表示数组第二个元素的地址的大小,地址为4个字节 4 printf("%d\n",sizeof(a[1])); //数组a第二个元素的大小 4 printf("%d\n",sizeof(&a)); //数组a首元素地址的大小 4 printf("%d\n",sizeof(&a+1)); //数组a下一个数组(其他)的地址大小 4 printf("%d\n",sizeof(&a[0])); //数组a首元素地址的大小 4 printf("%d\n",sizeof(&a[0]+1)); //数组a第二个元素的地址的大小 4 return 0;}//字符数组#include<stdio.h>int main(){char arr[] = {'a','b','c','d','e','f'}; //arr[]表示一个字符数组,里面有6个元素,不包括\0,一个char类型大小为1个字节 printf("%d\n", sizeof(arr)); //整个数组的大小 结果为6 printf("%d\n", sizeof(arr+0)); //数组首元素的地址 4 printf("%d\n", sizeof(*arr)); //数组首元素的大小 1 printf("%d\n", sizeof(arr[1])); //数组第二个元素'b' 的大小 1 printf("%d\n", sizeof(&arr)); //数组首元素的地址 4 printf("%d\n", sizeof(&arr+1)); //跳过整个数组,后面内容的地址的大小 4 printf("%d\n", sizeof(&arr[0]+1)); //数组第二个元素的地址的大小 4return 0;}二.strlen()的有关运算(1)strlen()用来计算指定字符串的长度,不包括结束字符“\0”;(2)它会从首地址一直找下去,直到遇到"\0"停止.1.#include<stdio.h>#include<string.h>int main(){char arr[] = {'a','b','c','d','e','f'};printf("%d\n", strlen(arr));//从数组的首元素地址一直找下去,直到"\0"停止,该数组不包括"\0",所以它会一直找下去,计算结果为一随机数 printf("%d\n", strlen(arr+0));//从数组的首元素地址一直找下去,计算结果为一随机数 printf("%d\n", strlen(*arr));//*arr表示首元素,即'a',也就是从地址值为97开始找,但97是一个未知地址,不允许访问,所以这题是错误的 printf("%d\n", strlen(arr[1]));//arr[1],即'b',所以这题也是错误的 printf("%d\n", strlen(&arr));//从数组的首地址一直找下去,计算结果为一随机数 printf("%d\n", strlen(&arr+1));//从跳过这个数组的地址开始找下去,计算结果为一随机数,比上式大6 printf("%d\n", strlen(&arr[0]+1)); //从数组的第二个元素的地址一直找下去,计算结果为一随机数,比上式小5return 0;}2.#include<stdio.h>#include<string.h>int main(){char *p = "abcdef";//*p 表示字符类型的指针变量p printf("%d\n", sizeof(p));//p存放首元素a的地址,则结果为4 printf("%d\n", sizeof(p+1));//p+1存放b的地址,结果为4 printf("%d\n", sizeof(*p));//*p表示首元素,结果为1 printf("%d\n", sizeof(p[0]));//表示首元素,结果为1 printf("%d\n", sizeof(&p));//字符类型的指针变量p的地址大小,结果为4 printf("%d\n", sizeof(&p+1));//指向下一个地址,仍然是地址,结果为4 printf("%d\n", sizeof(&p[0]+1));//b的地址,结果为4 printf("%d\n", strlen(p));//从a的地址一直找,直到遇到"\0"结束,结果为6 printf("%d\n", strlen(p+1));//从b的地址一直找,直到遇到"\0"结束,结果为6 printf("%d\n", strlen(*p));//错误,*p表示首元素,即'a',也就是从地址值为97开始找,但97是一个未知地址,不允许访问,所以这题是错误的 printf("%d\n", strlen(p[0]));//错误,与上式一样 return 0;}
1 0
- c语言中关于数组的一些基本运算
- C语言中关于数组的运算
- C语言中有关一维数组的一些运算
- 关于c语言的一些初步运算实例
- c 语言的基本运算
- C语言的基本运算
- C中关于数组以及数组的简单运算
- 关于C语言中数组的使用
- C语言中关于数组、指针以及函数的一些基本知识
- c语言中数组和数组的一些计算
- c中关于位操作的一些运算
- 关于矩阵的一些基本运算
- 数组--C语言中关于数组的小问题
- C语言基本运算
- C语言基本运算
- C语言基本运算
- c语言 基本运算
- C语言-基本运算
- 单链表的初始化、插入、删除、查找
- 数字旋转方阵 分治法
- 历届试题 打印十字图 (蓝桥杯)
- UVA
- jQuery的应用
- c语言中关于数组的一些基本运算
- 博弈论
- SSL2295 暗黑破坏神(dp)
- 自篡改Dalvik字节码delta.apk原理
- java io
- Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1
- 【c/c++】如何调用【Window】cmd命令行命令并获取命令行的输出内容
- Android中大图片的处理(一)之图片存在形式
- 建立一个矩阵类Matrix,存储一个4*4的矩阵并能在矩阵中查找某数。要求如下: