#include
#include <stdio.h>
#include
#include <Windows.h>
int main(void) {
char name[12]; //名称
//你是坑货
name[0] = 'n';
name[1] = 's';
name[2] = 'k';
name[3] = 'h';
name[4] = 0;
printf("我感觉:%s\n", name);
//不
name[0] = 'b';
printf("我感觉:%s\n", name);
//爹
name[3] = 'd';
printf("我感觉:%s\n", name);
system("pause");
return 0;
}
/**
忘写 元素地址 name[0] 或从一开始数
完犊子
如果吧字母换成 字符会形成乱码
name[4] = ‘乱’;
这行忘写 name[4] = 0;
我感觉:nskh烫烫烫烫烫烫??7
我感觉:bskh烫烫烫烫烫烫??7
我感觉:bskd烫烫烫烫烫烫??7
请按任意键继续. . .
**/
/**
第7节项目精讲-数组的初始化
数组的初始化
在定义数组的同时,设置数组内的元素值。
int a[8] = {20, 5, 30, 13, 18};
printf(“%d,%d,%d,%d,%d\n”, a[0],a[1],a[2],a[3],a[4]);
或者
cout << a[0] << “,” << a[1] << “,” << a[2] << “,” << a[3] << “,” << a[4];
int a[8] = {0}; //把数组的所有元素都初始化为0
printf(“%d,%d,%d,%d,%d\n”, a[0],a[1],a[2],a[3],a[4]);
int a[8] = {1}; //把a[0]初始化为1,其它值都初始化为0
int b[8] = {1, 5}; //把a[0]初始化为1,a[1]初始化为5,其它值都初始化为0
int a[] = {1,2,5}; //定义数组a, 这个数组包含3个元素!
// 根据“初始化列表”,自动计算数组的容量
高逼格用法(在某些特殊场合使用)
优点:但数组的成员较多时,该方式可读性高
缺点:仅仅C编译器支持,C++编译器中不支持,即C++程序中不能使用。
//每周的锻炼时间:
int exercises[7] = {
[1] = 1, //a[1] = 1
[3] = 2, //a[3] = 2
//没有指定的成员,被初始化为0
};
常见错误
int a[2] = {1,2,5}; //错误!初始值太多,大于数组的容量
int a[3];
a = {1, 2, 3}; //不能对数组名直接赋值!
int a[3];
a[3] = 10; //下标越界!下标的取值范围是 0, 1, 2
第8节项目精讲-数组元素的访问
数组的内元素的访问
通过下标访问对应的元素。
特别注意, 数组的第一个元素的下标是0, 而不是1
int girlSize[10];
a[5] = 38;
printf(“%d\n”, a[5]);
cout << a[5];
另类用法:
使用下标的方式访问string字符串
string name = “Rock”;
//name[i]是string字符串中的第i个字符(char类型)
for (int i=0; i< name.length(); i++) {
cout << name[i];
}
name[0] = 'L'; //name变成:Lock
cout << endl << name;
数组的越界
数组的越界, 是指下标超出正常的范围!
例如:
int a[10]; //a[-1] 和 a[10]都是越界!
越界的后果
越界非常危险,可能导致数据破坏,或其他不可预期的后果!
越界的控制
需要程序员自己手动控制,编译器不做任何检查!因为,C/C++语言完全信任程序员!
第9节项目精讲-C风格的字符串详解
1.C语言字符串的存储、初始化
字符串,是通过“字符数组”(元素类型为char的数组)来存储的!
demo1
char name[10];
name[0] = ‘R’;
name[1] = ‘o’;
name[2] = ‘c’;
name[3] = ‘k’;
name[4] = 0; //字符串结束符0,就是 ‘\0’
printf(“姓名:%s”, name); //
name[2] = 0;
printf(“姓名:%s”, name); //
demo2
char name[10] = “Rock”; //相当于char name[10] = {‘R’, ‘o’, ‘c’, ‘k’, ‘\0’};
printf(“姓名:%s”, name);
demo3
char name[] = “Rock”; //相当于:name[5] = “Rock”
printf(“%d”, sizeof(name)); //5
**/