数组初始化
来源:互联网 发布:java校验身份证号 编辑:程序博客网 时间:2024/06/06 01:17
数组初始化
#include<stdio.h>
#include<string.h>
int main (int argc,char **argv)
{
int str[] = {1,2,3,4};
int str1[5] = {1,2,3,4};
char str2[5] = "hell";
char str3[5] = {'h','e','l','l'};
char str4[] = "hell";
/* int 类型 */
printf("%d\n",*(str + 4)); //发生数组越界,现在的值即为垃圾数据
printf("%d\n",*(str1 + 4)); //编译器会优化,将第5个位置0
printf("%d\n",sizeof(str)); //大小为4*4
printf("%d\n",sizeof(str1)); // 大小为4*5
/* char类型 */
printf("%d\n",*(str2 + 4)); //这种定义时手工申请的大小,当数据没有
printf("%d\n",*(str3 + 4 ));//填满时,编译器会自动填字符'\0' = (ascll码)0
printf("%c\n",*(str4 + 5)); //同样数组越界,指向垃圾数据
//printf(“%d”,*(str4+4)); //就会是个 0 ,因为编译器会优化最后给个’\0’
printf("%d\n",strlen(str2)); //strlen 是统计字符个数的,不计'\0'的个数
printf("%d\n",strlen(str3)); //同上
printf("%d\n",strlen(str4)); //按理是求不出长度的,因为遇'\0'则止,然而
//后面并不是'\0'
return 0;
}
注:1. 数组是遇’\0’则止。
2. 看初始化的[]里边有无大小
3. ‘\0’ = 0 然而不等于字符’0’ 因为’\0’是转义字符,ascll码是十进制0
而’0’是普通字符 ,ascll码是48
4. Strlen函数 是求字符的,不计算’\0’的大小,sizeof关键字求大小,要注意是否’\0’
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 初始化数组
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- 数组初始化
- solr入门之suggest系统架构搭建
- 深度分析 Java 的 ClassLoader 机制(源码级别)
- oracle max()函数和min()函数
- struts2 s:if标签以及 #,%{},%{#} 资料整理
- LeetCode 2 Add Two Numbers(链表)
- 数组初始化
- 第8章 浏览器对象
- java中三种方式初始化数据域的方法
- python小点心--判断操作系统类型
- matplotlib画图
- Eric6 安装与颜色配置
- Android 蓝牙
- 3.CSS基本样式:背景、文本、字体、链接、列表、表格、轮廓
- 1123: 最高的奖励