- 局部变量定义的时候,系统不会初始化,第一次定义的时候算不算声明,会不会分配内存?
- char* ch = "012935"; //const char* 不能用于初始化 char*的实体。字符串指针
- string name = "张三";
cout << name.length() << endl;
cout << sizeof(name) << endl;
char ch[13] = "I love China";
cout << ch << endl;
output: 4
28
I love China
问题:1.遇到空格停止输出
2.sizeof 和 length不一样
-
#include <stdio.h>
int main()
{
int n, m;
scanf("%d", &n);
char s[n + 1], ret[n +1]; // 不是常量也可以吗
fflush(stdin);
gets(s);
scanf("%d", &m);
int i = m - 1, j = 0;
while(s[i] != '\0')
{
ret[j++] = s[i++];
}
ret[j] = '\0';
puts(ret);
return 0;
} - char型初始化
//1.定义结构体 struct Student { string name = ""; int age = 1; //string sex; char sex; }; struct Teacher { int no = 1000000; string name = ""; int age = 0; //string sex; char sex; Student stu; }; // int main() { Teacher t; t.no = 1000; t.name = "王老师"; t.age = 30; t.sex = '男'; //ASCII码太长导致char型无法表示?? t.stu.age = 18; t.stu.name = "李强"; t.stu.sex = '男'; cout << t.no << " " << t.name << " " << t.age << " " << t.sex << " " << t.stu.name << " " << t.stu.age << " " << t.stu.sex << endl; //通过指针指向结构体变量 /*Student* p = &stu; cout << p->name << " " << p->age << " " << p->sex << endl;*/ cout << endl; return 0; }
hero - 指针实体用"."指向成员?
struct Hero
{
string name;
int age;
string sex;
};
void heroSort(Hero* h, int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (h[j].age > h[j + 1].age)
{
Hero temp = h[j];
h[j] = h[j + 1];
h[j + 1] = temp;
}
}
}
}
void printHero(Hero* h, int len)
{
cout << "姓名\t" << "年龄\t" << "性别\n";
for (int i = 0; i < len; i++)
{
cout << h[i].name << "\t" << h[i].age
<< "\t" << h[i].sex << endl;
}
}
int main()
{
Hero h[5] =
{
{ "刘备",23,"男" },
{ "关羽",20,"男" },
{ "赵云",22,"男" },
{ "张飞",20,"男" },
{ "貂蝉",19,"女" }
};
int len = sizeof(h) / sizeof(h[1]);
heroSort(h, len);
printHero(h, len);
cout << endl;
return 0;
}